Video: Linux Tutorial for Beginners: Introduction to Linux Operating System 2024
Pentru firele care declanșează anumite evenimente de numărătoare inversă, cum ar fi inundarea tablei de lansare, lansarea evenimentelor și ridicarea, puteți crea o altă clasă Java numită LaunchEvent. Această clasă utilizează o altă tehnică pentru crearea și pornirea firelor - una care necesită încă câteva linii de cod, dar este mai flexibilă.
Problema cu crearea unei clase care extinde clasa Thread este că o clasă poate avea o superclasă. Ce se întâmplă dacă preferați ca obiectul thread să se extindă în altă clasă? În acest caz, puteți crea o clasă care implementează interfața Runnable, mai degrabă decât extinde clasa Thread.
Interfața Runnable marchează un obiect care poate fi rulat ca fir. Are o singură metodă, care rulează, care conține codul executat în fir. (Clasa Thread implementează Runnable, motiv pentru care clasa Thread are o metodă de rulare.)
Pentru a utiliza interfața Runnable pentru a crea și a începe un thread, trebuie să faceți următoarele:
-
Creați o clasă care implementează runnable.
-
Oferă o metodă de rulare în clasa Runnable.
-
Creați o instanță a clasei Thread și transferați obiectul Runnable constructorului său ca parametru.
Este creat un obiect Thread care poate rula clasa Runnable.
-
Apelați metoda de pornire a obiectului Thread.
Metoda de rulare a obiectului Runnable se numește și se execută într-un thread separat.
Primii doi dintre acești pași sunt ușori. Trucul se află în etapele a treia și a patra, pentru că le puteți completa în mai multe moduri. Iată o metodă, presupunând că clasa dvs. Runnable este numită RunnableClass:
RunnableClass rc = nou RunnableClass (); Filet t = nou fir (rc); T. start();
Programatorii Java doresc să fie la fel de concis, așa că vedeți adesea acest cod comprimat la ceva mai asemănător
Thread t = new Thread (nou RunnableClass ()); T. start();
sau chiar doar:
Thread nou (nou RunnableClass ()). start();
Această versiune cu o singură linie funcționează - cu condiția să nu aveți nevoie să accesați obiectul thread mai târziu în program.