当前位置: 首页 > news >正文

肇庆市住房和城乡房屋建设局网站百度小说风云榜总榜

肇庆市住房和城乡房屋建设局网站,百度小说风云榜总榜,网站html动态效果,淘宝店转让JUC线程中断相关问题总结 线程中断相关问题总结 JUC线程中断相关问题总结一、 sleep 和线程中断之间的关系和特点结论测试验证代码如下 二、 LockSupport 和线程中断之间的关系结论测试验证代码如下 一、 sleep 和线程中断之间的关系和特点 结论 线程调用 Thread.sleep之后会进…

JUC线程中断相关问题总结

线程中断相关问题总结

  • JUC线程中断相关问题总结
    • 一、 sleep 和线程中断之间的关系和特点
      • `结论`
      • `测试验证代码如下`
    • 二、 LockSupport 和线程中断之间的关系
      • `结论`
      • `测试验证代码如下`

一、 sleep 和线程中断之间的关系和特点

结论

  1. 线程调用 Thread.sleep之后会进入休眠状态 , 当前线程被中断后(其他线程调用了当前线程的interrupt()方法) , 那么就会抛出异常 需要捕获sleep的异常 , 这个正在休眠的线程会被迫唤醒
  1. 休眠的线程被中断后 唤醒后 其中断标记位会重置为false (可通过 thread.isInterrupted() 方法来验证)

测试验证代码如下

public class InterruptDemo {public static void main(String[] args) throws InterruptedException {sleepInterruptThread();}/*** 1. 中断调用了sleep方法的进行休眠的线程** 输出结果:** 1.SleepInterruptThread|| false* ERROR==>抛出异常:sleep interrupted* 2.SleepInterruptThread|| false* 3.1683772273061|| false* 4.1683772275072|| 完成任务!** 结论:*  线程调用sleep后 被中断是会抛出InterruptException , 并且线程的中断标记位会重置为false*  因此再次休眠 不会抛出中断异常!**/private static void sleepInterruptThread() throws InterruptedException {Thread t1 = new Thread(() -> {System.out.println("1." + Thread.currentThread().getName() + "|| " + Thread.currentThread().isInterrupted());try {Thread.sleep(10000);} catch (InterruptedException e) {System.out.println("ERROR==>抛出异常:" + e.getMessage());System.out.println("2." + Thread.currentThread().getName() + "|| " + Thread.currentThread().isInterrupted());}System.out.println("3." + System.currentTimeMillis() + "|| " + Thread.currentThread().isInterrupted());try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("4." + System.currentTimeMillis() + "|| 完成任务!");},"SleepInterruptThread");t1.start();Thread.sleep(1000);t1.interrupt();}}

二、 LockSupport 和线程中断之间的关系

结论

  1. 被LockSupport.park 挂起的线程 在被中断后 也会被唤醒 但是和sleep的区别是 这个方法并不会抛出InterruptException异常
  1. 中断唤醒之后不会抛出异常 , 但是这个线程的中断标记位变为了true 并不会重置 (可通过 thread.isInterrupted() 方法来验证)

测试验证代码如下

测试LockSupport.park中断后的线程状态 , 还有中断后和sleep方法结合使用

public class LockSupportDemo {public static void main(String[] args) throws InterruptedException {// 1. 测试LockSupport挂起的线程 被中断是否抛出异常lockSupport();Thread.sleep(1000);System.out.println("=============================================");System.out.println("=============================================");System.out.println("=============================================");// 2. 测试LockSupport中断后和sleep方法一起使用lockSupportSleep();}/*** 1. 被LockSupport.park 挂起的线程 调用中断方法后并不会抛出异常 , 但是线程的中断标记位的确变为了true** 输出结果:** 1.LockSupportThread||false* 3.LockSupportThread||true* 2.LockSupportThread||true** 可以看到通过 LockSupport 挂起的线程在被中断后并不会抛出异常 但是中断标记位是改为了true**/private static void lockSupport() throws InterruptedException {Thread t1 = new Thread(() -> {System.out.println("1." + Thread.currentThread().getName() + "||" + Thread.currentThread().isInterrupted());// 将线程挂起LockSupport.park();System.out.println("2." + Thread.currentThread().getName() + "||" + Thread.currentThread().isInterrupted());// 如果后边跟上 Thread.sleep 则会抛出InterruptException异常 并重置线程中断标记位为false , 看下边 lockSupportSleep},"LockSupportThread");t1.start();Thread.sleep(500);t1.interrupt();System.out.println("3." + t1.getName() + "||" + t1.isInterrupted());}/*** 2. LockSupport中断线程后 和sleep方法结合使用** 输出结果:** 1.LockSupportSleepThread||false* 2.LockSupportSleepThread||true* 抛出异常==》sleep interrupted* 3.LockSupportSleepThread||false*/private static void lockSupportSleep() throws InterruptedException {Thread t1 = new Thread(() -> {System.out.println("1." + Thread.currentThread().getName() + "||" + Thread.currentThread().isInterrupted());// 将线程挂起LockSupport.park();System.out.println("2." + Thread.currentThread().getName() + "||" + Thread.currentThread().isInterrupted());// 如果后边跟上 Thread.sleep 则会抛出InterruptException异常 并重置线程中断标记位为false , 看下边 lockSupportSleeptry {Thread.sleep(1000);} catch (InterruptedException e) {System.out.println("抛出异常==》" + e.getMessage());System.out.println("3." + Thread.currentThread().getName() + "||" + Thread.currentThread().isInterrupted());}},"LockSupportSleepThread");t1.start();Thread.sleep(500);t1.interrupt();}}
http://www.mmbaike.com/news/49487.html

相关文章:

  • 黑龙江省建设工程交易中心网站seo快速排名站外流量推广
  • 网站上的缩略图怎么做清晰免费网上销售平台
  • 永济市网站建设网络推广优化工具
  • 天水头条最新消息今天抖音优化是什么意思
  • 如何做考试网站头条广告入口
  • 江苏品牌网站建设电话2022年最好用的搜索引擎
  • 网站备案表不会写广州今日新闻头条新闻
  • 南宁做网站费用北京厦门网站优化
  • 马蹄网室内设计西安seo外包
  • 36氪网站是用什么做的电子商务网站建设教程
  • 兰州 网站建设南宁seo排名外包
  • 广西住建厅行政审批系统seo 优化教程
  • wordpress迁移安装seo查询百科
  • 余姚 做网站全国疫情突然又严重了
  • 湛江建设网站如何开通网站
  • 公司网站百度排名没有了网站域名怎么注册
  • 武汉网站建设不推广宽带业务如何推广
  • 被墙的网站有哪些深圳seo优化公司哪家好
  • 顺德做网站的公司百度旅游官网
  • 无锡做公司网站的个人开发app最简单方法
  • 深圳seo网站优化google谷歌搜索主页
  • 企业互联网服务平台外贸网站seo推广教程
  • 化妆品行业网站开发国外搜索引擎优化
  • 安卓系统开发公司关键词优化是怎么做的
  • 网站升级维护需要多久想要网站导航推广页
  • 武昌做网站公司软件开发培训机构
  • 金坛建设局招标网站海外建站
  • 怎么在vps上做网站商务软文写作范文200字
  • 网站开发实例百度站长seo
  • 在线 网站建设国内搜索引擎有哪些