java一个小程序问题(多线程问题,俺是一个初学者)

2025-03-02 01:29:54
推荐回答(5个)
回答1:

你把数字改大点就好了

不过不会一个一个交错的

这个设计cpu时间片的问题
应该是A线程执行一段时间 然后主线程执行一段时间交互的
即使是双核处理器 两个线程同时运行 也会有效率不同的问题的

回答2:

这个很难交错运行的,主要原因是在多线程运行的时候,我们不能控制操作系统到底是调用哪一个线程,可能出现的结果有多种。

回答3:

这个是cup智能分配问题,你这数字太小体现不出来,你换成1000甚至10000看看就可以发现它的分配规律并不是每个线程轮流来的

回答4:

是主线程和副线程同时运行
你输出的太少了 只有4个

把 for(int i = 0 ; i<4; i++) 改成while(true)试试

回答5:

循环里加上
Thread.sleep(1);
class TestThreads extends Thread{
public void run(){
for(int i=0;i<=4;i++){
try {
System.out.println("test is operating!");
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class TestThreads2 extends Thread{
public void run(){
for(int i=0;i<=4;i++)
try {
System.out.println("test2 is operating!");
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class TestThread{
public static void main(String[] args) {
new TestThreads().start();
new TestThreads2().start();
}