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

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

répondre à tous(4)
PHPzhong

Thread.currentThread() ne renvoie pas le thread dans lequel le programme en cours s'exécute, mais renvoie le thread dans lequel le code Thread.currentThread() est exécuté.

Vous pouvez donc voir que lorsque le nouveau thread est construit, le code est exécuté dans le thread principal, tandis que le code de la méthode run est exécuté dans le thread.

C'est facile à comprendre en regardant le résultat

Ty80

1. Lorsque new est un objet Thread, le nom par défaut est au format Thread-n Vous pouvez consulter le code source de Thread.
2. Ceci est un objet fil thisLorsque vous l'utilisez comme ça, c'est le fil actuel.
3. Thread.currentThread() renvoie toujours le fil de discussion en cours d'exécution.

巴扎黑

Le résultat d'exécution de la méthode constructeur est compréhensible, mais pourquoi le résultat d'exécution de la méthode run n'est-il pas testThread dans setName mais thread ?

洪涛

1. La méthode getName() est héritée de la classe Thread. Il suffit de regarder la méthode getName() de la classe Thread :

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

2. Oui
3. Oui
Dans le constructeur, Thread.currentThread() est le thread principal et Thread.currentThread() dans la méthode run est le thread actuel

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal