已有101人关注
JAVA 从入门到精通 例18.7不懂~~
发表在Java图书答疑 2015-10-04
是否精华
版块置顶:
setPriority("threadA", 5, threadA);
setPriority("threadB", 5, threadB);
setPriority("threadC", 4, threadC);
setPriority("threadD", 3, threadD);
在运行 A线程的时候,为什么不是一直运行下去,而是与B并行?A运行的 时候会切换回主函数的 setPiority(“threadB”,5,threadB)吗,当A调用t.start()时候B并没有调用啊,为什么B线程会启动?
  还有A和B的优先级最高,为什么不是这两个先运行完再运行C和D(书中P332图下面那段话不是这么说的吗),而是四个一起交替运行?
分享到:
精彩评论 3
菜鸟级精英
学分:0 LV1
TA的每日心情
开心
2020-03-23 21:05:48
2015-10-08
沙发
所有线程的start方法都封装到setPriority()方法里了,被当做参数的线程就会运行。
书上说,四个线程有细微差别,实质上是先运行了A、B线程,再执行了C、D线程。例子中仅给出4个线程,效果不明显,如果能给出上百个线程同时运行,就能看到效果了。
佚名
学分:70 LV3
TA的每日心情
开心
2021-07-05 14:21:40
2015-10-08
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
所有线程的start方法都封装到setPriority()方法里了,被当做参数的线程就会运行。
书上说,四个线程有细微差别,实质上是先运行了A、B线程,再执行了C、D线程。例子中仅给出4个线程,效果不明显,如果能给出上百个线程同时运行,就能看到效果了。
[/FIELDSET]

回复:
  我想问的是为什么不是先把A,B运行完?他们的优先级更加高啊。
菜鸟级精英
学分:0 LV1
TA的每日心情
开心
2020-03-23 21:05:48
2015-10-08
地板
[FIELDSET][LEGEND]引自:2楼[/LEGEND]
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
所有线程的start方法都封装到setPriority()方法里了,被当做参数的线程就会运行。
书上说,四个线程有细微差别,实质上是先运行了A、B线程,再执行了C、D线程。例子中仅给出4个线程,效果不明显,如果能给出上百个线程同时运行,就能看到效果了。
[/FIELDSET]

回复:
  我想问的是为什么不是先把A,B运行完?他们的优先级更加高啊。
[/FIELDSET]

回复:
  优先级高的线程是优先执行,而不是强占资源。当优先级高的线程处于非可执行状态的时候,则会执行其他线程。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照