对JAVA单线程的一点疑惑? 本帖最后由 wwxxff28 于 2013-12-01 16:23:10 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 确切的说是线程的run方法执行结束时间不确定。start方法是告诉jvm,说:“我准备开启一个线程了”。而线程的run方法要依赖os/jvm的调度。你在byte[] digest = dr.getDigest();前加一句dr.join(); // 这个方法是等待该线程终止。会发现再也不会报错了。 Thread.start()是在主线程里面告诉JVM可以启动新线程的运行了,新线程什么时候被JVM调度和执行完是不确定的。不过可以用一个条件信号量来判断。 书上的话是对的。线程启动之后运行需要依赖CPU调度。多核和单核的情况还不一样 主线程和子线程之间有什么关系?在主线程也就是main()里面创建的子线程 dr ,我感觉应该是主线程main和子线程的dr的执行顺序已经确定了。如果是在main()中创建多个线程,那么创建的多个线程的执行顺序不定。不知我这种理解是否正确? 谢谢你的回答。提问的问题我已经明白了。但是还有一个问题,JAVA对线程的调度方式是哪种方式?我记得是《JAVA编程思想》上讲的是优先级调度。所有未指定优先级的线程都是同一个优先级。是不是包括主线程main()也是这个优先级? java 泛型的类型问题-迷惑吧,那就进来瞧瞧 swing jtable 怎样实现单击一行记录,打开新窗口并传达这行记录参数? tomcat源码在返回值中加上圆括号,这个是为啥? 为什么垃圾回收【garbage collection】速度这么快? 多线程问题. jsp如何在服务器端创建文件在客户端跳出窗口直接下载? 求助:下来菜单选择显示Iframe+图像 求教 汉字转日文(平假名) 关于SQL语句 极度郁闷中,看看大家友没有碰到种运行的问题 java里有没有求字符串长度的static函数 java写文件时可以指定所有者和权限吗?
而线程的run方法要依赖os/jvm的调度。你在byte[] digest = dr.getDigest();前加一句
dr.join(); // 这个方法是等待该线程终止。
会发现再也不会报错了。