![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并发
文章平均质量分 53
蘼芜-
You are what you think......................
展开
-
LockSupport
文章目录LockSupport方法示例 LockSupport LockSupport定义了一组公共的静态方法,提供了最基本的线程阻塞和唤醒功能,LockSupport也是构建同步组件(AQS)的基础工具。 以park开头的方法用来阻塞当前线程,以及unpark(Thread thread)方法来唤醒一个被阻塞的线程。 方法 方法 描述 void unpark(Thread thread) 唤醒处于阻塞状态的线程 void park() 阻塞当前线程,调用 unpark 方法或者当前线程原创 2020-06-27 16:06:21 · 195 阅读 · 0 评论 -
并发编程学习笔记
参考资料: 《Java并发编程之美》 《Java并发编程的艺术》 《Java多线程编程核心技术》 《Java高并发程序设计》 创建线程 线程的状态 查看运行时线程的信息 死锁 ThreadLocal Atomic 原子类原创 2020-06-27 11:52:55 · 199 阅读 · 0 评论 -
查看运行时的线程信息
打开终端 输入命令jps, 结果示例: 35696 KotlinCompileDaemon 7812 Launcher 11880 ThreadState 14408 21064 Jps 输入命令jstack #pid#, 这里是jstack 11880, 结果示例: “BlockedThread-2” #12 prio=5 os_prio=0 tid=0x151af800 nid=0x50dc waiting for monitor entry [0x1568f000] java.lang..原创 2020-06-27 11:18:06 · 674 阅读 · 0 评论 -
线程的状态
##一、Java 线程的状态 查看运行时的线程信息 java.lang.Thread.State public enum State { /** * Thread state for a thread which has not yet started. */ NEW, /** * Thread state for a runnable thread. A thread in the runnable原创 2020-06-27 11:16:46 · 143 阅读 · 0 评论 -
创建线程
继承Thread类, 重写run()方法, 调用start()方法启动线程. 优点: 在run方法内获取当前线程直接使用this就可以了, 无须使用Thread.currentThred() 缺点: ①Java不支持多继承 ②任务和代码没有分离 ③没有返回值 实现Runnable接口, 具体实现run()方法, 也没有返回值. 实现Callable接口的call()方法, 使用创建的FutureTask对象作为任务创建一个线程并启动它, 最后通过futureTask.get()等待任务执行完毕, 并返回结.原创 2020-06-27 11:12:55 · 152 阅读 · 0 评论 -
Atomic 原子类
文章目录Atomic 原子类简介原子更新基本类型AtomicInteger 的方法使用示例主要源码原子更新数组AtomicIntegerArray 方法使用示例源码原子更新引用AtomicReference 方法使用示例源码原子更新属性(字段)AtomicIntegerFieldUpdater 简单介绍使用示例JDK 8 新增的原子操作类 LongAndderLongAdder 的结构当前线程访问 Cell 数组里面的那个元素如何初始化 Cell 数组Cell 数组如何扩容处理线程访问分配的 Cell 元素原创 2020-06-27 11:06:33 · 258 阅读 · 0 评论 -
ThreadLocal、InheritableThreadLocal、ThreadLocalRandom
文章目录ThreadLocal使用示例源码Thread 类中有两个变量setgetremoveInheritableThreadLocal使用示例源码RandomThreadLocalRandom主要代码实现逻辑currentnextIntnextSeed ThreadLocal ThreadLocal是JDk包提供的,它提供了线程的本地变量,也就是如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地副本。 当多个线程操作这个变量时,实际操作的是自己本地内存里面的变原创 2020-06-19 15:32:28 · 197 阅读 · 0 评论 -
并发死锁示例
文章目录初始死锁产生并备的四个条件代码示例避免死锁 初始 死锁是指两个或者两个以上的线程在执行过程中,因争夺资源而造成的互相等待的现象,在无外力作用的情况下,这些线程会一直相互等待而无法继续运行下去。 如图: 线程A已经持有了资源2,他同时还想申请资源1 线程B已经持有了资源1,它同时还想申请资源2 所以两个线程相互等待对方已经持有的资源而进入了死锁状态。 死锁产生并备的四个条件 互斥条件 指线程对已经获取到的资源进行排它性使用,即该资源同时只由一个线程占用。 请求并持有条件 指一个线程已经持原创 2020-06-18 17:07:31 · 179 阅读 · 0 评论