黑马程序员技术交流社区

标题: 求教 ,,,Thread多线程 [打印本页]

作者: sunxiaohong    时间: 2015-5-10 21:47
标题: 求教 ,,,Thread多线程
多线程Thread的yield()方法可以和Thread的join()方法一起用么?

作者: 396460221    时间: 2015-5-11 11:02
当A线程执行到了B.join()方法时,A就会等待,等B线程都执行完后,A线程才会执行。join可以用来临时加入执行线程。yield ()强制临时释放执行权,让所有线程都能运行到。A只有等到B执行完了才会执行,而期间比如还有CD等更多线程,CPU会在除了A之外的线程里进行快速切换,直到B执行完,A才会参与到CPU执行权的争夺。所以可以一起使用。一起使用有啥意义就不知道了
作者: 杨春雨    时间: 2015-5-11 11:28
方法肯定有执行的先后顺序啦~yield()我自己理解就是放弃的意思 就是假设当前有一个A线程调用了yield()方法,则它就像在门口等着一样,他会让和他级别一样活着比他高级别的其他可执行线程去执行,但不会让比自己级别低的过去。如果是join()方法哪,字面意思就是参加,加入的意思,他可以有参数,如果是A.join(0),意思就是A这个线程要参加进来了,A就会一直执行完才会回到主线程。当然join(XX)中XX的参数可以给他定一个时间去执行,假设A.join(500),那就是给他500纳秒的时间去执行,500纳秒后回到主线程。你如果是先调用yield()在调用join()那最后的结果还是会执行join()方法啊。。。第一次回答问题。回答的不好 多关照哦。如果哪里说错了可以纠正一下 。要是没明白可以再问我。大家一起学习哦。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2