Thread.currentThread() tidak mengembalikan utas di mana program semasa sedang berjalan, tetapi mengembalikan utas di mana kod Thread.currentThread() dilaksanakan.
Jadi, anda boleh melihat bahawa apabila utas baharu dibina, kod itu dilaksanakan dalam utas utama, manakala kod dalam kaedah larian dilaksanakan dalam utas.
1. Apabila new ialah objek Thread, nama lalainya adalah dalam format Thread-n Anda boleh melihat Thread kod sumber. 2. Ini adalah objek benang thisApabila anda menggunakannya seperti ini, ia adalah benang semasa. 3. Thread.currentThread() sentiasa mengembalikan urutan yang sedang dijalankan.
Thread.currentThread() tidak mengembalikan utas di mana program semasa sedang berjalan, tetapi mengembalikan utas di mana kod Thread.currentThread() dilaksanakan.
Jadi, anda boleh melihat bahawa apabila utas baharu dibina, kod itu dilaksanakan dalam utas utama, manakala kod dalam kaedah larian dilaksanakan dalam utas.
Ia mudah difahami dengan melihat output
1. Apabila
new
ialah objekThread
, nama lalainya adalah dalam formatThread-n
Anda boleh melihatThread
kod sumber.2. Ini adalah objek benang
this
Apabila anda menggunakannya seperti ini, ia adalah benang semasa.3.
Thread.currentThread()
sentiasa mengembalikan urutan yang sedang dijalankan.Hasil larian kaedah pembina boleh difahami, tetapi mengapakah hasil larian kaedah larian bukan testThread dalam setName tetapi utas?
1. Kaedah getName() diwarisi daripada kelas Thread hanya lihat kaedah getName() kelas Thread:
2. Ya
3. Ya
Dalam pembina, Thread.currentThread() ialah thread utama, dan Thread.currentThread() dalam kaedah run ialah thread semasa