Java多线程Thread.currentThread()的疑问
高洛峰
高洛峰 2017-04-18 10:01:15
0
4
828
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

membalas semua(4)
PHPzhong

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

Ty80

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.

巴扎黑

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:

    /**
     * Returns this thread's name.
     *
     * @return  this thread's name.
     * @see     #setName(String)
     */
    public final String getName() {
        return String.valueOf(name);
    }

2. Ya
3. Ya
Dalam pembina, Thread.currentThread() ialah thread utama, dan Thread.currentThread() dalam kaedah run ialah thread semasa

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan