谈一谈你对线程中断的理解?
1 个回答
二八佳人体似酥,腰间仗剑斩凡夫。小菜鸟在Java中认为,一个线程不应该由其他线程来强制中断或者停止,所以一些会强制中断线程的方法Thread.stop(), Thread.suspend()方法都已经废弃了。所以一般是通过调用thread.interrupt();方法来设置线程的中断标识, 1.这样如果线程是处于阻塞状态,会抛出InterruptedException异常,代码可以进行捕获,进行一些处理。(例如Object#wait、Thread#sleep、BlockingQueue#put、BlockingQueue#take。其中BlockingQueue主要调用conditon.await()方法进行等待,底层通过LockSupport.park()实现) 2.如果线程是处于RUNNABLE状态,也就是正常运行,调用thread.interrupt();只是会设置中断标志位,不会有什么其他操作。 ```java //将线程的中断标识设置为true thread.interrupt(); //判断线程的中断标识是否为true thread.isInterrupted() //会返回当前的线程中断状态,并且重置线程的中断标识,将中断标识设置为false thread.interrupted() ```发布于 2022-02-08 04:26 •IP属地 辽宁举报评论收藏
公众号进入网站体验更佳

