日期:2014-05-20  浏览次数:20743 次

java多线程的问题
下面这段程序为什么没实现多线程,写法有什么错误
public class Demo
{
public static void main(String[] arg)
{
new TestThread().start();

for(int i=0;i<7;i++)
{
System.out.println("多线程正在运行!");
}
}
}
class TestThread extends Thread
{
public void run()
{
for(int i=0;i<7;i++)
{
System.out.println("是多线程!");
}
}
}

------解决方案--------------------
楼主在两个for里面分别加Thread.sleep(1000);
------解决方案--------------------
其实你的确实是多线程的了。一个mian线程,一个你new的TestThread。
------解决方案--------------------
的却是多线程, 但是在实际有用中,你不可能把很多的业务逻辑放到主线程中跑吧,你应该再多写几行new TestThread().start(); 把业务都分发到new出来的线程里面去。这样不但是多线程,而且还有实际意义。
------解决方案--------------------
肯定是多线程的,其实线程的并发执行,收到组多的因素印象,如运行huanjing,处理器。。。。。
不防把循环次数加大大的(效果不明显),因为现在的处理机速度太快太快了。
其次,让一个线程进入block状态一秒,你会发现并发啊啊啊 啊a
------解决方案--------------------
你这个才是运行了主线程(mian)和TestThread()这两个线程 。。。。。。
------解决方案--------------------
探讨

循环次数加大了还是不行啊,还不是交替运行的,还有一点我很郁闷就是明明不是先调用了start()么,为什么先运行的是main函数呢!

------解决方案--------------------
多线程是没有执行顺序的,是每个线程各自隔一段时间得到CPU分配的时间片来执行。
通俗点说就是轮流执行,但因为每次分得的时间片不等,所以每个线程的每次执行时长也不等。

这是我的理解
------解决方案--------------------
多线程的确是多线程 不过是没有什么明显的效果 在每个for里面加一个Thread.sleep(1000) 就可以看到明显的效果了