Thread的run方法和start方法
2009-06-26 09:43
351 查看
Thread的run方法和start方法
1 线程的概念:线程的起动并不是简单的调用了RUN方法,而是由一个线程调度器来分别调用所有线程的RUN方法, 我们普通的RUN方法如果没有执行完是不会返回的,也就是会一直执行下去,这样RUN方法下面的方法就不可能会执行了,可是线程里的RUN方法却不一样,它只有一定的CPU时间,执行过后就给别的线程了,这样反复的把CPU的时间切来切去,因为切换的速度很快,所以我们就感觉是很多线程在同时运行一样. 简单的调用run方法是没有这样效果的,所以必须调用Thread类的start方法来启动线程.所以启动线程有两种方法 一是写一个类继承自Thread类,然后重写里面的run方法,用start方法启动线程 二是写一个类实现Runnable接口,实现里面的run方法,用new Thread(Runnable target).start()方法来启动 这两种方法都必须实现RUN方法,这样线程起动的时候,线程管理器好去调用RUN方法. 2 “老师给我们讲课的时候举过一个例子,就相当于玩游戏机,只有一个游戏机(cpu),可是有很多人要玩,于是,start是排队!等轮到你了,就run()了,当cpu的运行的时间片要到的时候,这个线程就继续排队,等待下一次的run()” “准确来说,不应该是排队,而应该是老师(JVM)看中谁 另外还有一个状态,就是 你玩的时候你老妈来叫你吃饭了,于是这个时候你就只好离开,老师继续找其他人来玩~那么你这个时候的状态叫做阻塞状态。 当你吃饭玩了后又回来继续玩,这个时候你就又得重新让老师看中你。。。” 3 之所以出现线程,就是为了更好的利用CPU,让她更加“精明”的干活。 通过调用Thread类的start()方法来启动一个线程, 这时此线程是处于就绪状态, 并没有运行。 然后通过此Thread类调用方法run()来完成其运行操作的, 这里方法run()称为线程体, 它包含了要执行的这个线程的内容, Run方法运行结束, 此线程终止, 而CPU再运行其它线程, 而如果直接用Run方法, 这只是调用一个方法而已, 程序中依然只有主线程--这一个线程, 其程序执行路径还是只有一条, 这样就没有达到写线程的目的。 记住:线程就是为了更好地利用CPU, 提高程序运行速率的! class OneThread extends Thread { public void run(){ } } public class MainApp { public static void main(String[] args){ OneThread ot = new OneThread(); //ot.run(); //就相当于调用一个ot中的方法,不会创建新的线程 ot.start();//创建新的线程,并且调用run方法 } } |
相关文章推荐
- java中Thread类中的start()方法与run()方法
- Java多线程之Thread的run()与start()方法解析
- Thread直接调用run()和start()方法的区别
- java中Thread线程中的 start()和run()方法的区别
- Java Thread中start和run方法的区别
- Java Thread中start和run方法的区别?
- Thread继承类中的run()方法和start()方法的区别
- Thread.java start方法和run方法的区别
- Java中Thread类的start()方法和run()方法
- Thread的run()方法与start()方法
- java Thread类的run()方法以及start()方法
- Thread类包含start()和run()方法
- java thread start()和run()方法简析
- Thread线程中start()和run()方法的区别
- Java学习札记16:浅析 Thread 类中的 start() 和 run() 方法
- java Thread中,run方法和start方法的区别
- android-Thread的run方法和start方法
- 多线程:创建Thread为什么要调用start启动,而不能直接调用run方法
- Java-线程Thread方法start()和run()
- Java并发编程--Thread中start()与run()方法的区别概要