Ada pertanyaan bodoh sederhana yang mengganggu saya dan membuat beberapa argumen di benak saya. Saya ingin membuang semua keraguan tentang pertanyaan di bawah ini.
class Clstest{
public static String testStaticMethod(String inFileStr) {
// section 0
// section 1
// do something with inFileStr
// section 2
// section 3
return inFileStr;
}
}
Mari kita asumsikan ada lima utas yang masing-masing menjalankan panggilan ke Clstest.testStaticMethod("arg-n")
pada saat yang sama.
Utas 1 panggilan Clstest.testStaticMethod("arg-1")
.
Saat utas 1 ada di bagian 1, utas 2 memanggil Clstest.testStaticMethod("arg-2")
.
Lalu apa yang akan terjadi pada Thread 1? Apakah akan masuk ke status tidur?
Ketika Thread 1 mendapat kesempatan, apakah ia akan melanjutkan eksekusi dari bagian 1 di mana ia dijeda?
Bagaimana itu terjadi ketika ada satu Clstest.testStaticMethod
dan sama Clstest.testStaticMethod
dibagikan di antara kelima utas?
Apakah ada kemungkinan untuk menukar yang inFileStr
dikirim oleh beberapa utas?