Java threads

Чөлөөт нэвтэрхий толь — Википедиагаас
Харайх: Удирдах, Хайлт

1. Java threads гэж юу вэ?


Бид компьютерээ асаан янз бүрийн програм тоглоом гэх мэт зүйлийг зэрэг ажилуулдаг шүү дээ. Угтаа бол компьютер маань хэзээ ч зэрэг үйлдэл хийж чадахгүй өрөвдөлтэй эд юм. Ер нь амьдрал дээр ч мөн адил бид зэрэг үйлдэл хийж чаддаггүй. Гэхдээ л зэрэг шахуу хийдэг ба хийх шаардлага гардаг. Энийг яаж зохицуулах вэ гэхээр энгийн ойлголтоор бага багаар ээлжилж хийх явдал юм. Үүнийг л шийдэх гэж гарч ирсэн ойлголт бол THREAD юм. Ийм учраас үйлдлийн системүүд энэ Thread – гэх зүйлийг зохицуулдаг хэсэгтэй болсон ба биднийг програм бичихэд ч энэ зохицуулалтаас хэрэглэхийг зөвшөөрч хэрэглэх боломжийг олгодог. Энэ нь програм бичихэд ямар хэрэгтэй вэ гэх талаарх ойлголт нь: Бидний хийсэн програм ямар нэг зүйлийг 5 сек – ээс дээш хугацаагаар уншиж эхлэхэд л хэрэглэгчид уурлах үндэслэл би болдог. 5 сек – ээ багасгаж чадахгүй бол урд нь нэг уншиж байна, одоо энд явж байна гэх мэтийн мэдээлэл гаргах хэрэгтэй болход л энэ thread асуудал үүсэж эхлэнэ. Хэрхэн энэ 2ийг зэрэг ажиллуулах вэ? гээд л. Үүний тод жишээ бол вирусны програм юм. Thread ашиглахгүйгээр удаан үйлдэлтэй програм хийхэд програм чинь үйлдэлээ хийгээд завгүй бол наад зах нь өөрийн интэрфейсээ зурж чадахаа болино. NOT RESPONDING гээд харж байсан байх. Ер нь thread үүсэж байна аа гэдэг маань CPU дээр тухайн thread нь өөрийн гэсэн хэсэгтэй болно гэсэн үг. Бусад өөр thread – ийн халдашгүй дархан эрхэнд халдаж болохгүй. Тийм болхоор алдаа зааж байгаа юм. Гэхдээ бүүр хандаж болохгүй гэсэн үг юм. Процесүүд нь CPU дээр очертой байдаг ба зарим нэг нь очер дайрах эрхтэй байдаг. Энэ нь тухайн процесуудынхаа зэрэглэлээс хамааран хийгдэнэ. Мэдээж өндөр зэрэглэлтэй нь дайрна. synchronized – ийн хувьд бол олон thread дундаа нэг өгөгдөл ашиглахад хэрэглэдэг арга. Үүнээс улбаалаад Java програмын Thread гэдэг нь програмын биелэлтийн суурь загвар бөгөөд бүтээл ба менежментийн thread-ээр Java хэл ба API нь баялаг онцлогтой байдаг. Бүх Java програмууд нь ядаж нэг удирдлагын thread агуулдаг ба зөвхөн main() method -оос бүтсэн жирийн Java програм хүртэл нэг thread агуулдаг. Java програмд thread-ийг үүсгэх 2 арга байдаг.

Үүнд:


• Implementing the Runnable Interface – Runnable interface-ийг хэрэгжүүлэх

• Extending Thread Class – Thread классыг өргөжүүлэх гэсэн 2 арга байдаг. Аль ч тохиолдолд, thread-ийн гүйцэтгэх ажлыг run() арга дотор тодорхойлно. Thread бүр нь java.lang.Thread class –д удирдах ба үүсгүүлдэг.


Thread ангийн аргууд:

Арга Тайлбар
run() Үүнийг Runnable объект дахин тодорхойлно. Thread –ийн гүйцэтгэх кодийг агуулна.
start() Thread эхлэхдээ run() аргаа дуудна.
sleep() Заасан хугацаанд түр хүлээж бусад Thread-уудад ажиллах бололцоог олгоно.
interrupt() Идэвхтэй Thread-ийг тасалдуулна.
getName() Идэвхтэй байгаа Thread-ийн нэрийг буцаана.
getPirority() Priority-ийг буцаана.
isAlive() Тухайн Thread байгаа эсэхийг шалгана. Булийн утга буцаана.
setName() Thread-д нэр өгнө.
get() Thread-д Pirority өгнө.
currentThread() Идэвхтэй Thread-ийг буцаана.

2. Хэрхэн ашиглах вэ?

  •        Implementing the Runnable Interface – Runnable interface-ийг хэрэгжүүлэх

The Runnable Interface Signature

   public interface Runnable {
   void run();
   }
  •        Extending Thread Class – Thread классыг өргөжүүлэх
      ( new Thread() {
        public void run() {
        for(;;) System.out.println(“Stop the world!”);
        }
        }
        ).start();