日期:2014-05-20 浏览次数:20690 次
public class TestThread1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Runner1 r = new Runner1(); //Thread t = new Thread(); r.start(); for(int i = 0; i < 100; ++i) { System.out.println("main thread:" + i); } } } class Runner1 extends Thread { public void run() { for(int i = 0; i < 100; ++i) { System.out.println(i); } } }
public void run() { for(int i = 0; i < 100; ++i) { sleep(1000); System.out.println(i); } }
------解决方案--------------------
不是这样写的
你对多线程理解反了
你这样想
Runnable是一个任务,比如一个类实现了一个任务,让这个类实现Runnable接口就表明这个任务有放在多线程里的可能。
Thread是一个线程,但没有任务,所以是一个空的线程。
new Thread(Runnable)就是把这个任务放进了线程里,让这个线程来执行这个任务,而不是由其它线程执行。
然后thread.start()就是把这个线程启动起来,线程就会执行任务了
这样理解就容易多了
------解决方案--------------------
你这两段代码都是按线程执行的呀,,有啥问题呐?
(其中第1段代码,打印100次太少了,看不出效果,把它改成1000就可以看出效果了~~~)
------解决方案--------------------
楼主怎么判断的程序没有多线程呢?1楼跟3楼实现没什么区别。
------解决方案--------------------
不能光看结果,是cpu执行太快了,你在每个for循环里面sleep 个1毫秒看看,就会有效果了
------解决方案--------------------
有交替打印