很久没看技术书籍了,今天看了一下《七周七并发模型》前面两章讲的java,写的还是有深度的。看到了一个有demo,说jvm内置锁synchronized是不能被中断的。照着书上写了个demo,验证了一下,是不能被中断

/*** @Author: * @Description: jdk内置锁不能被中断* @Date: Created in : 2018/10/4 下午11:34**/
public class Uninterruptible {private static final Object o1 = new Object();private static final Object o2 = new Object();public static void main(String[] args) throws InterruptedException {t1.start();t2.start();Thread.sleep(2000);System.out.println("before interrupt");t1.interrupt();t2.interrupt();System.out.println("end interrupt");t1.join();t2.join();}static Thread t1 = new Thread(() -> {synchronized (o1){try {System.out.println("start t1");Thread.sleep(1000);synchronized (o2){System.out.println("t1 lock o2");}} catch (InterruptedException e) {System.out.println("t1 interrupted");e.printStackTrace();}}});static Thread t2 = new Thread(() -> {synchronized (o2){try {System.out.println("start t2");Thread.sleep(1000);synchronized (o1){System.out.println("t2 lock o1");}} catch (InterruptedException e) {System.out.println("t2 intterrupted");e.printStackTrace();}}});
}

转载于:https://www.cnblogs.com/luckygxf/p/9743847.html

jvm内置锁synchronized不能被中断相关推荐

  1. java 内置锁_深入理解java内置锁(synchronized)和显式锁(ReentrantLock)

    synchronized 和 Reentrantlock 多线程编程中,当代码需要同步时我们会用到锁.Java为我们提供了内置锁(synchronized)和显式锁(ReentrantLock)两种同 ...

  2. Java内置锁——synchronized

    一.给对象加把锁 synchronized关键字是Java唯一内置的互斥锁,通过关键字 synchronized 可以保证同一时刻只有一个线程获得某个同步代码块的执行权,但不会导致其他线程执行非同步方 ...

  3. Java并发编程实战————可重入内置锁

    引言 在<Java Concurrency in Practice>的加锁机制一节中作者提到: Java提供一种内置的锁机制来支持原子性:同步代码块."重入"意味着获取 ...

  4. Java并发编程(1):可重入内置锁

    每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁.线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁.获得内置锁的唯一途径就是进入由这个锁保护的同步代码块 ...

  5. 七 内置锁 wait notify notifyall; 显示锁 ReentrantLock

    Object中对内置锁进行操作的一些方法: Java内置锁通过synchronized关键字使用,使用其修饰方法或者代码块,就能保证方法或者代码块以同步方式执行. 内置锁使用起来非常方便,不需要显式的 ...

  6. Java 并发编程之内置锁 synchronized

    synchronized 是Java 提供的内置锁机制,可以用在代码块上,也可以直接用在方法上. 这里有两个概念,锁对象,和代码块. synchronized锁的是对象,任意一个Java 对象都可以作 ...

  7. JVM内置函数intrinsics简介

    在本文中,我们将学习什么是intrinsics(内部/内置函数),以及它们如何在Java和其他基于JVM的语言中工作. 什么是内置? 内置函数是由我们的编程语言的编译器或解释器进行特殊处理的函数.更具 ...

  8. 内置锁的能力不足以满足需求

    Lock 锁是一种工具,用于控制对共享资源的访问 Lock和synchronized,这两个是最常见的锁,它们都可以达到线程安全的目的,但是在使用上和功能上又有较大的不同 Lock并不是用来替代syn ...

  9. Android4.2上内置第三方锁屏(一)、锁屏开机加载流程

    最近在研究将第三方锁屏内置到android系统的问题,现在有时间来梳理下最近的工作: 首先列举下当前的外部条件: 1.基于CM修改的android4.2,4.4进行内置,这里以android4.4来讲 ...

最新文章

  1. 算法--运算的最小翻转次数
  2. RT-Thread的位图调度算法分析(最新版)
  3. 是什么引起数据中心机房事故频发,是天灾还是人祸?
  4. 逻辑回归为什么使用对数损失函数
  5. 基于深度学习的CTR模型DeepCTR 更新啦!
  6. 对话Justin Uberti:RTC的过去、现在和未来
  7. GitHub的CI实践(xUnit / OpenCover /Appveyor / Coveralls.net)
  8. Introduction to Web MIDI
  9. MySQL的InnoDB和MyISAM比较
  10. 为了满足自己的好奇心,搞了一个业余项目耍,没想到还给我带来了$3000的收入......
  11. Es6 类class的关键 super、static、constructor、new.target
  12. 清华大学计算机学院张远,计算机系2019-2020学年度学生代表大会顺利召开
  13. ckplayer(超酷网页视频播放器)
  14. 《你见,或者不见我》
  15. sql server之T-SQL语句创建数据库创建表
  16. 【web前端初级课程】第八章 什么是事件?
  17. 网页打不开的时候怎么办
  18. TOY++美私奢玩:TEAx正茶链盟 +雅贡臻品登陆台北!跨界斜杠派展
  19. 【MybatisPlus】表名或字段名是Mysql关键字如何解决
  20. 【Java Web】在html界面中提交表单,由jsp进行接收并展示[jsp的接收使用的是jsp内置对象] 【上课记录】

热门文章

  1. 高并发C/S的TCP版本golang实现
  2. 汇编-debug结果正确与执行结果错误
  3. 2259: matrix
  4. 我的世界1.13的服务器网站,我的世界1.13纯净版
  5. 计算机辅助工艺设计张胜文,计算机辅助工装设计.ppt
  6. java 获取mp4 缩略图_java获取视频缩略图
  7. 字符串相乘(大数相乘)
  8. 概率论-4.1 大数定律
  9. 如何利用反射实现EL表达式
  10. Spring事务TransactionProxyFactoryBean属性-transactionAttributes的意义