
jni
tera_tian
这个作者很懒,什么都没留下…
展开
-
JNI-从jvm源码分析Thread.sleep、synchronized、LockSupport.park的线程阻塞的区别
前言 在日常编码的过程中,我们经常会使用Thread.sleep、LockSupport.park()主动阻塞线程,或者使用synchronized和Object.wait来阻塞线程保证并发安全。此时我们会发现,对于Thread.sleep和Object.wait方法是会抛出InterruptedException,而LockSupport.park()和synchronized则不会。而当我们调用Thread.interrupt方法时,除了synchronized,其他线程阻塞的方式都会被唤醒。 于是本文原创 2020-11-22 18:21:01 · 904 阅读 · 1 评论 -
JNI-从jvm源码分析Thread.interrupt的系统级别线程打断原理
前言 在java编程中,我们经常会调用Thread.sleep()方法使得线程停止运行一段时间,而Thread类中也提供了interrupt方法供我们去主动打断一个线程。那么线程挂起和打断的本质究竟是什么,本文就此问题作一个探究。 本文主要分为以下几个部分 1.interrupt的使用特点 2.jvm层面上interrupt方法的本质 3.ParkEvent对象的本质 4.Park()对象的本质 5.利用jni实现一个可以被打断的MyThread类 1.interrupt的使用特点 我们先看2个线程打断的示原创 2020-11-22 12:20:26 · 272 阅读 · 0 评论