java多线程System.out顺序
来源:互联网 发布:苹果怎么备份数据 编辑:程序博客网 时间:2024/06/04 18:58
Given:1. public class TestOne implements Runnable {2. public static void main (String[] args) throws Exception {3. Thread t = new Thread(new TestOne());4. t.start();5. System.out.print("Started");6. t.join();7. System.out.print("Complete");8. }9. public void run() {10. for (int i= 0; i< 4; i++) {11. System.out.print(i);12. }13. }14. }What can be a result?A. Compilation fails.B. An exception is thrown at runtime.C. The code executes and prints "StartedComplete".D. The code executes and prints "StartedComplete0123".E. The code executes and prints "Started0l23Complete".Answer: E
首先,你运行的main方法就是一个线程。然后,是你自己又启动了一个线程,这个线程里面你输出了0123当你从main方法里面启动了t线程后,两个线程就是一起运行了,至于谁先输出谁后输出,你是不能控制的。属于cpu调度的问题。ls解释不错。给你说明的就是main也是个线程。并不是说main方法会等待所有开启的子线程结束,他会自己继续运行。其中join方法告诉main方法,你等t结束后你再继续运行Started可以出现在数字之后,甚至穿插,但是答案这不是没有这些选项么。。也即,Started和数字输出是有一定随机性的,正如你所述,Started之前,线程就已经start了,因此上述几种情况皆可能0123肯定是顺序输出,但Started可以在0之前、或01之间、12之间、23之间、3之后任何时候输出,因在System.out.pririt("Started");这句之前,thread t已开始运行,Started和0、1、2、3的输出先后关系有随机性,这也是多线程运行的特征之一。就本题来说,不存在穿插输出的答案,这点可以略过,此其一其二,Thread类的join方法的作用是,等待该线程结束,换言之,在该线程结束前(本题中为t),join函数是不会返回的,因此可知,0123一定在Complete之前打印
0 0
- java多线程System.out顺序
- java 关于System.out.println的多线程并发问题
- java System.out.println()
- Java: 省略System.out
- System.out.println 的输出顺序..
- 【技术】Java入门:e.printStackTrace()和System.out输出顺序混乱的问题
- System.out.println 的多线程并发问题
- java trick--system.out.println
- Java基础----System.in、System.out
- java基础(System.err和System.out)
- java --System.err和System.out
- java system.out.println与system.out.write
- Java IO: System.in, System.out, and System.error
- Java中的System.in,System.out,System.err
- Java IO: System.in, System.out, System.err
- java.io中的System.in、 System.out和System.err
- printStackTrace()输出和System.out输出非调用顺序输出
- e.printStackTrace()与System.out输出顺序混乱
- vim显示行号、语法高亮、自动缩进的设置
- 第十一周 项目六 (1)反序数
- 详细讲解 const 作用和用法
- Generate Parentheses
- 编程方式取得Spring上下文的Properties
- java多线程System.out顺序
- 数据结构之选择排序之堆排序(参考严蔚敏数据结构)
- hdu1302The Snail
- R packages for big data:data.table
- Spring依赖注入和控制反转比喻
- Mac下如何安装Wordpress?
- 《番茄工作法图解》
- Spring Aop实例
- GCC