武当山供的是哪位大神神帮我看一下这三个结果上面用run下面start 上面start下面用run为啥结果不一

线程的概念:线程的起动并不是简单的调用了RUN方法,而是由一个线程调度器来分别调用所有线程的RUN方法,
我们普通的RUN方法如果没有执行完是不会返回的,也就是会一直执行下去,这样RUN方法下面的方法就不可能会执行了,可是线程里的RUN方法却不一样,它只有一定的CPU时间,执行过后就给别的线程了,这样反复的把CPU的时间切来切去,因为切换的速度很快,所以我们就感觉是很多线程在同时运行一样.
简单的调用run方法是没有这样效果的,所以必须调用Thread类的start方法来启动线程.所以启动线程有两种方法
一是写一个类继承自Thread类,然后重写里面的run方法,用start方法启动线程
二是写一个类实现Runnable接口,实现里面的run方法,用new Thread(Runnable target).start()方法来启动
这两种方法都必须实现RUN方法,这样线程起动的时候,线程管理器好去调用RUN方法.
“老师给我们讲课的时候举过一个例子,就相当于玩游戏机,只有一个游戏机(cpu),可是有很多人要玩,于是,start是排队!等轮到你了,就run()了,当cpu的运行的时间片要到的时候,这个线程就继续排队,等待下一次的run()”
“准确来说,不应该是排队,而应该是老师(JVM)看中谁
另外还有一个状态,就是
你玩的时候你老妈来叫你吃饭了,于是这个时候你就只好离开,老师继续找其他人来玩~那么你这个时候的状态叫做阻塞状态。
当你吃饭玩了后又回来继续玩,这个时候你就又得重新让老师看中你。。。”
之所以出现线程,就是为了更好的利用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方法
本文已收录于以下专栏:
相关文章推荐
Spring作为现在最优秀的框架之一,已被广泛的使用,51CTO也曾经针对Spring框架中的JDBC应用做过报道。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的...
上一篇博客Mvc4单点登录之一Cas简单介绍简单的介绍了cas的工作原理!这篇文章介绍一下Cas
Server端的配置。
      首先要说明Cas server 是一个java程序,所以首先...
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家...
Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。Inten...
java中接口的定义与实现
分类: Java开发相关
11:34 122397人阅读 评论(17) 收藏 举报
javafloatinterfaceclasss...
由于Java是纯面向对象语言,因此,Java的线程模型也是面向对象的。Java通过Thread类将线程所必须的功能都封装了起来。要想建立一个线程,必须要有一个线程执行函数,这个线程执行函数对应Thre...
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的,今天和大家...
1. IoC理论的背景
我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。
图1:软件系统中耦合的对象
原文转自:http://blog.csdn.net/y/article/details/6648155
1,关于spring容器:
spring容器是Spring的核心,...
1 Spring框架的核心组件:Core、Context、Beans。其中最核心的组件就是Beans,
他的最新文章
讲师:AI100
讲师:谢梁
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 一下哪位大神没有参与 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信