线程联合
一个线程运行期间,可以通过join()方法被其它线程联合。比如在thread1中执行thread2.join(),那么thread1会立刻中断执行释放CPU资源,直到thread2执行完毕再继续。(如果thread2已经结束,调用thread2.join()将没有效果)
线程联合虽然很少提到,但在游戏中,其实有很多灵活的用法,它可以加入零活的条件控制,从而使线程协作更灵活。比如资源加载线程需要更多CPU资源,可以让出动画线程;最晚开启的网络线程优先于其它后台网络线程等等。
守护线程
线程通过调用setDeamon(boolean)方法将本身设为守护线程,当程序中其它非守护线程(即用户线程)都结束后,守护线程会立刻结束运行(即使run没有执行完毕)。游戏中,守护线程可以用来做一些垃圾回收工作、错误信息收集工作或者LOG记录工作等。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。