问题描述
- java多线程,显示结果有疑问
-
package com.ii11;
public class ThreadDemo2 {/** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub TestThread t = new TestThread(); new Thread(t).start(); for(int i=0; i<3; i++) { System.out.println("main 线程在运行"); } }
}
class TestThread implements Runnable
{
public void run()
{
for(int i=0; i<3; i++)
System.out.println("Thread 线程在运行");
}
}
没有实现多线程效果,只显示如下结果为何
main 线程在运行
main 线程在运行
main 线程在运行
Thread 线程在运行
Thread 线程在运行
Thread 线程在运行
解决方案
线程之间的执行顺序不是固定的,主线程的执行速度在你 new 的线程执行之前也是可能的。
我在代码new Thread(t).start();的下面让主线程休眠了一毫秒Thread.sleep(1);
执行结果就是这样了:
Thread 线程在运行
Thread 线程在运行
Thread 线程在运行
main 线程在运行
main 线程在运行
main 线程在运行
楼主可以试一下,共同学习。
解决方案二:
想看出来效果,多输出几句,主线程和测试线程加上sleep(1000)休眠一秒试试
解决方案三:
从楼主的输出看出来,启动一个线程开销还是蛮大的。
解决方案四:
你把两个for循环的循环次数都设置成10000试试看。
时间: 2024-11-01 01:57:08