[高并发Java 二] 多线程基础(10)

http://www.smzswang.com时间:2016-11-27 20:02来源:互联网

  publicvoidrun(){ //线程t1while(true){ Thread .yield(); }}t1 .interrupt();

  这样使线程t1中断,是不会有效果的,只是更改了中断状态位。

  如果希望非常优雅地终止这个线程,就该这样做

  publicvoidrun(){ while(true) { if(Thread.currentThread().isInterrupted()) { System .out.println( "Interruted!"); break; } Thread .yield(); } }

  使用中断,就对数据一致性有了一定的保证。

  对于可取消的阻塞状态中的线程, 比如等待在这些函数上的线程, Thread.sleep(), Object.wait(), Thread.join(), 这个线程收到中断信号后, 会抛出InterruptedException, 同时会把中断状态置回为false.

【免责声明】本文仅代表作者个人观点,与中国数码招商网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。您若对该稿件内容有任何疑问或质疑,请联系本网将迅速给您回应并做处理。