"Halo, Amigo! Wingi kita rembugan keuntungan lan penak saka multithreading. Saiki wektune kanggo ndeleng kerugian. Lan, sayangé, padha ora cilik."
Sadurunge, kita ndeleng program minangka sakumpulan obyek sing nyebutake metode siji-sijine. Saiki kabeh dadi luwih rumit. Program luwih kaya sakumpulan obyek sing duwe sawetara "robot cilik" (benang) sing nyusup lan nglakokake perintah sing ana ing metode kasebut.
Interpretasi anyar iki ora mbatalake sing pisanan. Padha isih obyek, lan padha isih nelpon cara saben liyane. Nanging kita kudu ngelingi yen ana sawetara utas, lan saben utas nindakake tugas utawa tugas dhewe.
A program dadi luwih rumit. Utas sing beda-beda ngganti kahanan obyek sing beda-beda adhedhasar tugas sing ditindakake. Lan padha bisa ngidak ing driji sikil siji liyane.
Nanging sing paling awon kedadeyan ing jero mesin Java. Kaya sing wis dakkandhakake, simultanitas benang sing katon ditindakake kanthi kasunyatan manawa prosesor terus-terusan ngalih saka siji benang menyang benang liyane. Ngalih menyang thread, dianggo kanggo 10 milidetik, ngalih menyang thread sabanjuré, dianggo kanggo 10 milidetik, lan ing. Lan ing kene ana masalah: ngalih iki bisa kedadeyan ing wektu sing paling ora cocog. Coba conto iki:
Kode utas pisanan | Kode utas kapindho |
---|---|
|
|
Apa sing dikarepake bakal ditampilake |
---|
Nick 15 taun Lena 21 taun |
Eksekusi kode nyata | Kode utas pisanan | Kode utas kapindho |
---|---|---|
|
|
|
Apa sing bener ditampilake |
---|
Nick punika Lena punika 15 21 taun |
Lan iki conto liyane:
Kode | Katrangan |
---|---|
|
Metode swap swap nilai-nilai lan name1 variabel name2 .
Apa sing bisa kedadeyan yen diarani saka rong utas bebarengan? |
Eksekusi kode nyata | Kode utas pisanan | Kode utas kapindho |
---|---|---|
|
|
|
Garis ngisor |
---|
Loro-lorone variabel duwe nilai «Lena». Objek «Ally» ora bisa ditindakake. Wis ilang. |
"Sapa sing bakal ngira yen kesalahan kaya iki bisa ditindakake kanthi operasi tugas sing prasaja?!"
"Ya, masalah iki duwe solusi. Nanging kita bakal ngomong babagan iki mengko - tenggorokanku garing."
GO TO FULL VERSION