"Halo, Amigo! Ellie ngandhani sampeyan babagan utas, lan aku bakal menehi pitutur marang kowe carane sampeyan bisa nggarap thread kasebut. Kanggo nggawe thread anyar, sampeyan kudu: "

1)  Nggawe obyek Utas

2) Pass iku cara sing arep kanggo mbukak

3)  Nelpon cara wiwitan ing obyek Utas digawe.

Coba conto iki:

Kode Katrangan
class Printer implements Runnable
{
public void run()
{
System.out.println("I’m printer");
}
}
Kelas sing ngleksanakake antarmuka Runnable .
public static void main(String[] args)
{
Printer printer = new Printer();
Thread childThread = new Thread(printer);
childThread.start();
}
1 Gawe conto kelas Printer, sing ngetrapake metode run.
2 Gawe obyek Utas anyar. We pass konstruktor obyek printer, kang cara roto () kudu dijaluk.
3 Miwiti thread anyar kanthi nelpon cara wiwitan () .

Program Jawa cilik biasane kasusun saka siji utas sing disebut «utas utama». Nanging program luwih kerep miwiti Utas tambahan, kang disebut «Utas anak». Utas utama nganggo cara utama lan rampung. Metode run saka Runnable minangka cara analog kanggo benang anak.

"Ah, akeh benang tegese akeh metode utama."

Nggawe lan miwiti thread anyar - 1

Kanggo ngandhani obyek Utas kang cara tartamtu kudu miwiti, kita kudu piye wae pass cara kanggo. Ing Jawa, iki rampung nggunakake antarmuka Runnable . Antarmuka iki ngemot cara abstrak tunggal: void run() . Kelas Utas nduweni konstruktor Utas (Runnable Runnable) . Sampeyan bisa ngliwati sembarang obyek sing ngleksanakake antarmuka Runnable .

Kelas sampeyan kudu marisi Runnable lan ngilangi metode rune . Nganggo metode iki yaiku miwiti thread anyar. Sampeyan bisa nulis apa wae sing dikarepake ing metode run .

Kode Katrangan
class Printer implements Runnable
{
private String name;
public Printer(String name)
{
this.name = name;
}
public void run()
{
System.out.println("I’m " + this.name);
}
}
Kelas sing ngleksanakake antarmuka Runnable.
public static void main(String[] args)
{
Printer printer1 = new Printer("Nick");
Thread thread1 = new Thread(printer1);
thread1.start();

Printer printer2 = new Printer("Jack");
Thread thread2 = new Thread(printer2);
thread2.start();
}
Nggawe loro Utas, saben kang bakal adhedhasar obyek Printer dhewe.
public static void main(String[] args)
{
Printer printer = new Printer("Natasha");

Thread thread1 = new Thread(printer);
thread1.start();

Thread thread2 = new Thread(printer);
thread2.start();

Thread thread3 = new Thread(printer);
thread3.start();
}
Nggawe telung Utas adhedhasar obyek Printer siji.

Apa maneh, sampeyan bisa nggabungake kabeh iki dadi siji kelas. Kelas Thread marisi antarmuka Runnable , dadi sampeyan mung kudu ngilangi metode run:

Cara liya kanggo nggawe thread anyar
class Printer extends Thread
{
private String name;
public Printer(String name)
{
this.name = name;
}
public void run()
{
System.out.println("I’m " + this.name);
}
}
Warisan kelas Utas , sing ngleksanakake antarmuka Runnable , lan banjur ngilangi cara roto .
public static void main(String[] args)
{
Printer printer = new Printer("Jack");
printer.start();

Printer printer2 = new Printer("Jack");
printer2.start();

}
Nggawe loro Utas, saben kang bakal adhedhasar obyek Printer dhewe .

"Iki solusi sing luwih elegan."

"Ya, nanging ana kekurangane:"

1)  Sampeyan bisa uga kudu miwiti sawetara utas adhedhasar obyek siji, kaya ing conto karo Natasha.

2)  Yen sampeyan nampa warisan saka kelas Utas, sampeyan ora bisa nambah kelas induk liyane menyang kelas sampeyan.

3)  Yen kelas sampeyan duwe kelas induk, sampeyan ora bisa nambah Utas minangka kelas induk kapindho.

"Ing tembung liyane, sawise cara wiwitan diarani, saben Utas wiwit nglakokaké cara roto saka obyek liwati kanggo konstruktor?"

"Ya. Yen ora ana sing diterusake menyang konstruktor, banjur Utas mung nglakokake metode roto internal."

"Nanging apa ora kita nelpon cara kaya iki?"

Kode
public static void main(String[] args)
{
 Printer printer1 = new Printer("Nick");
 printer1.run();
}

"Nalika utas utama tekan cara roto , "robot cilik" mung mlebu lan nglakokake kabeh perintah ing njero. Mung sawise dieksekusi bakal bali menyang metode utama lan terus nglakokake perintah luwih lanjut. Mangkono, ora liya " robot cilik" bakal digawe. Kabeh karya bakal dileksanakake sequentially, ora ing podo karo (bebarengan)."

"Aku weruh. Sampeyan bisa nelpon sawetara cara liyane, soko liyane saka mbukak?"

"Ora. Iku kabeh disambungake menyang antarmuka Runnable, sing mung "ngerti" babagan salah sawijining cara: run () .