Jee*_*ekh 8 java multithreading
当我运行这个程序
public class Fabric extends Thread {
public static void main(String[] args) {
Thread t1 = new Thread(new Fabric());
Thread t2 = new Thread(new Fabric());
Thread t3 = new Thread(new Fabric());
t1.start();
t2.start();
t3.start();
}
public void run() {
for(int i = 0; i < 2; i++)
System.out.print(Thread.currentThread().getName() + " ");
}
}
Run Code Online (Sandbox Code Playgroud)
我得到输出
Thread-1 Thread-5 Thread-5 Thread-3 Thread-1 Thread-3
Run Code Online (Sandbox Code Playgroud)
是否有任何具体原因为什么线程被赋予奇数的名称 - 1,3,5 ...或者它是不可预测的?
Zho*_*gYu 13
new Thread(new Fabric());
Run Code Online (Sandbox Code Playgroud)
由于Fabric
是一个线程,你在这里创建了2个线程:)
JDK8代码:
/* For autonumbering anonymous threads. */
private static int threadInitNumber;
private static synchronized int nextThreadNum() {
return threadInitNumber++;
}
Run Code Online (Sandbox Code Playgroud)
除非在创建Thread时指定了名称,否则 Thread名称中的默认数值是递增的值.Fabric
延伸Thread
,和要传递的Fabric
实例来创建另一个螺纹-由此作为处理期间创建2个线程内螺纹计数器递增两次.
归档时间: |
|
查看次数: |
2238 次 |
最近记录: |