为什么Thread类的sleep和yield()方法是静态的

请问怎么回答

全部评论
The code would only execute when someXThread was executing, in which case telling someYThread to yield would be pointless. So since the only thread worth calling yield on is the current thread, they make the method static so you won't waste time trying to call yield on some other thread . 这是stackoverflow上的回答。是说,该代码只有在某个A线程执行时会被执行,这种情况下通知某个B线程yield是无意义的(因为B线程本来就没在执行)。因此只有当前线程执行yield才是有意义的。通过使该方法为static,你将不会浪费时间尝试yield 其他线程。 讲得很清楚,就是说,如果是和线程实例绑定的话,你可能会在当前线程中尝试调用otherThread.yeild()/sleep(), 而这使没有意义的
3 回复 分享
发布于 2016-09-17 09:19
我觉得这里不应该理解为静态的,而是理解为属于类方法而不是实例方法。因为这个方法作用是使当前线程休眠,而与具体线程类实例无关,所以其实要是专门弄个工具类来放这些方法其实是更合理的,类似于Math类里的max()这种。我个人看法,欢迎拍砖。
点赞 回复 分享
发布于 2016-09-16 00:17
上面回答是对的,只能自己调自己
点赞 回复 分享
发布于 2016-09-17 10:27
因为这两个方法是针对于处于running状态的thread的,静态方法直接让目前正在运行的现程wait,不让处于等待状态的线程调用该方法
点赞 回复 分享
发布于 2016-09-16 10:09
如果是实例方法的话,意味着别的线程可以调用此线程的方法(使此线程sleep),会造成一些问题
点赞 回复 分享
发布于 2016-09-15 22:17

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
3136次浏览 43人参与
# HR最不可信的一句话是__ #
1014次浏览 32人参与
# 米连集团26产品管培生项目 #
7060次浏览 224人参与
# 春招至今,你的战绩如何? #
14676次浏览 136人参与
# AI面会问哪些问题? #
890次浏览 22人参与
# 你的实习产出是真实的还是包装的? #
2704次浏览 52人参与
# 巨人网络春招 #
11484次浏览 224人参与
# 沪漂/北漂你觉得哪个更苦? #
1209次浏览 38人参与
# 你做过最难的笔试是哪家公司 #
1123次浏览 20人参与
# AI时代,哪个岗位还有“活路” #
2675次浏览 49人参与
# XX请雇我工作 #
51147次浏览 171人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7965次浏览 43人参与
# 简历第一个项目做什么 #
32067次浏览 357人参与
# 简历中的项目经历要怎么写? #
310896次浏览 4257人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152823次浏览 888人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187553次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64520次浏览 864人参与
# 如果重来一次你还会读研吗 #
229971次浏览 2011人参与
# 投格力的你,拿到offer了吗? #
178239次浏览 891人参与
# 你怎么看待AI面试 #
180643次浏览 1295人参与
# 正在春招的你,也参与了去年秋招吗? #
364158次浏览 2641人参与
# 腾讯音乐求职进展汇总 #
160820次浏览 1114人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务