【发布时间】:2024-01-20 01:54:01
【问题描述】:
我正在尝试创建两个并发运行的线程我如何测试它们是否同时运行它在当前线程结束后线程正在运行的输出中接缝?这是正在发生还是您正在同时运行?
public class Start {
public static void main(String[] args) {
new ThreadOne();
Thread t = Thread.currentThread(); // Static Method
t.setName("Thread One");
System.out.println(t);
for(int i = 0; i<=100; i++) {
System.out.println("Main Thread: " + i);
}
}
}
public class ThreadOne implements Runnable {
Thread t;
public ThreadOne() {
t =new Thread(this, "Demo Thread");
System.out.println("Child Thread" + t);
t.start();
}
@Override
public void run() {
for(int i = 0; i<=100; i++) {
System.out.println("Child Thread: " + i);
}
}
}
输出
Main Thread: 0
Main Thread: 1
Main Thread: 2
Main Thread: 3
Main Thread: 4
Main Thread: 5
Main Thread: 6
Main Thread: 7
Main Thread: 8
Main Thread: 9
Main Thread: 10
Child Thread: 0
Child Thread: 1
Child Thread: 2
Child Thread: 3
Child Thread: 4
Child Thread: 5
Child Thread: 6
Child Thread: 7
Child Thread: 8
Child Thread: 9
Child Thread: 10
【问题讨论】:
-
启动线程需要时间。你可以在一个线程中做很多工作,因为第二个结束开始了。顺便说一句,这意味着如果创建线程的工作超出了该线程的好处,则将工作传递给另一个线程并不总是有意义。
标签: java multithreading concurrency