Java多线程中run和start的区别
2016-03-06 22:12
309 查看
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://visionsky.blog.51cto.com/733317/431397
Thread的start和run
1) start:
用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。
2) run:
run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。
总结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。
本文出自 “学习笔记” 博客,请务必保留此出处http://visionsky.blog.51cto.com/733317/431397
Thread的start和run
1) start:
用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到spu时间片,就开始执行run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内容,Run方法运行结束,此线程随即终止。
2) run:
run()方法只是类的一个普通方法而已,如果直接调用Run方法,程序中依然只有主线程这一个线程,其程序执行路径还是只有一条,还是要顺序执行,还是要等待run方法体执行完毕后才可继续执行下面的代码,这样就没有达到写线程的目的。
总结:调用start方法方可启动线程,而run方法只是thread的一个普通方法调用,还是在主线程里执行。
本文出自 “学习笔记” 博客,请务必保留此出处http://visionsky.blog.51cto.com/733317/431397
相关文章推荐
- Maven学习总结(二)—— eclipse中使用Maven创建Web项目
- java的环境变量和系统属性
- 基于spring的可扩展性
- 《Java程序设计》第1周学习总结
- 20145109《Java程序设计》第一周学习总结
- Java 并发 同步方案总结
- ACM之Java输入输出
- 【JAVA】31、类的定义
- 20145229吴姗珊《JAVA程序设计》第一周学习总结
- Java 二叉树查找算法代码
- 20145212 《Java程序设计》第1周学习总结
- java实现一个过滤器
- Java - 编程基础
- Java Max Direct Memory Size设置
- struts2学习笔记--------为应用指定多个struts文件
- java中四种引用类型
- struts2学习笔记------接受请求参数
- SpringMVC介绍之约定优于配置
- Spring redirect直接返回项目根文件夹
- struts2学习笔记--------动态方法调用和使用通配符定义action