Runnable run() vs. Thread start()
Soalan:
Serentak Pengaturcaraan Java, antara muka Runnable mentakrifkan kaedah run() yang merupakan titik masuk untuk tugas. Begitu juga, kelas Thread mempunyai kaedah mula() yang memulakan urutan pelaksanaan baharu. Apakah perbezaan utama antara kedua-dua kaedah ini?
Jawapan:
Perbezaan asas terletak pada penciptaan dan pelaksanaan benang:
Larian boleh lari (): Tiada Penciptaan Benang
Permulaan utas(): Thread Penciptaan
Contoh:
Pertimbangkan dua kelas, R1 dan R2, melaksanakan antara muka Runnable:
class R1 implements Runnable { public void run() { ... } } class R2 implements Runnable { public void run() { ... } }
Dalam perkara berikut coretan kod, r1.run() dan r2.run() digunakan secara langsung, yang bermaksud tiada yang baharu benang dicipta:
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); r1.run(); r2.run(); }
Sebaliknya, kod berikut mencipta dua utas baharu, t1 dan t2, dan memulakannya:
public static void main() { R1 r1 = new R1(); R2 r2 = new R2(); Thread t1 = new Thread(r1); Thread t2 = new Thread(r2); t1.start(); t2.start(); }
Dalam kod ini, tugasan yang dikaitkan dengan r1 dan r2 akan dilaksanakan serentak dalam urutan yang baru dibuat.
Atas ialah kandungan terperinci Runnable run() vs. Thread start(): Apakah Perbezaan Utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!