java并发LockSupport

LockSupport是阻塞和唤醒线程的重要类。
park()方法使得当前线程阻塞
unpark(Thread thread)唤醒线程

例子

可以把注释取消再执行,就会发现park()方法使得当前线程阻塞会使得main线程阻塞,无法结束。

package com.java.javabase.thread.base.concurrent.lock;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.locks.LockSupport;@Slf4j
public class LockSupportTest {/*** @author* @version* @since*/private static Object object = new Object();private static int size = 10;private static int sum = 0;public static void main(String[] args) {Thread t1 = new Thread() {@Overridepublic void run() {for (int i = 0; i < size; i++) {sum += i;}LockSupport.park();log.info("{} sum :{}", Thread.currentThread().getName(),sum);}};Thread t2 = new Thread() {@Overridepublic void run() {for (int i = 0; i < size; i++) {sum += i;}log.info("{} sum :{}",Thread.currentThread().getName(), sum);}};t1.start();//t2.start();log.info("current thread is {}",Thread.currentThread().getName());//LockSupport.park(t2);LockSupport.unpark(t1);//LockSupport.unpark(t2);}}

结果

2019-08-09 11:40:15,219   [main] INFO  LockSupportTest  - current thread is main
2019-08-09 11:40:15,219   [Thread-0] INFO  LockSupportTest  - Thread-0 sum :45

转载于:https://www.cnblogs.com/JuncaiF/p/11326297.html

java并发LockSupport相关推荐

  1. Java并发编程之锁机制之LockSupport工具

    关于文章涉及到的jdk源码,这里把最新的jdk源码分享给大家----->jdk源码 前言 在上篇文章<Java并发编程之锁机制之AQS(AbstractQueuedSynchronizer ...

  2. 死磕Java并发:J.U.C之Condition

    作者:chenssy 来源:http://cmsblogs.com/?p=2222 在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait().notify()系列 ...

  3. Java并发编程,无锁CAS与Unsafe类及其并发包Atomic

    为什么80%的码农都做不了架构师?>>>    我们曾经详谈过有锁并发的典型代表synchronized关键字,通过该关键字可以控制并发执行过程中有且只有一个线程可以访问共享资源,其 ...

  4. Java并发基础框架AbstractQueuedSynchronizer初探(ReentrantLock的实现分析)

    AbstractQueuedSynchronizer是实现Java并发类库的一个基础框架,Java中的各种锁(RenentrantLock, ReentrantReadWriteLock)以及同步工具 ...

  5. Java 并发编程-不懂原理多吃亏(送书福利)

    作者 | 加多 关注阿里巴巴云原生公众号,后台回复关键字"并发",即可参与送书抽奖! ** 导读:并发编程与 Java 中其他知识点相比较而言学习门槛较高,从而导致很多人望而却步. ...

  6. java并发实战编程pdf_「原创」Java并发编程系列25 | 交换器Exchanger

    2020年Java面试题库连载中 [000期]Java最全面试题库思维导图 [001期]JavaSE面试题(一):面向对象 [002期]JavaSE面试题(二):基本数据类型与访问修饰符 [003期] ...

  7. java condition_死磕Java并发:J.U.C之Condition

    在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait().notify()系列方法可以实现等待/通知模式.在Java SE5后,Java提供了Lock接口,相对于 ...

  8. java并发编程实践_Java并发编程实践如何正确使用Unsafe

    一.前言 Java 并发编程实践中的话: 编写正确的程序并不容易,而编写正常的并发程序就更难了.相比于顺序执行的情况,多线程的线程安全问题是微妙而且出乎意料的,因为在没有进行适当同步的情况下多线程中各 ...

  9. java 并发编程总结

    这边文章的主要内容是基于"java并发编程艺术"这本书,中间加入了一些自己的理解.这篇文章包括并发编程涉及到的几乎所有基础知识.主要是帮助长期从事业务逻辑开发的java程序员梳理一 ...

最新文章

  1. **汇总CodeIgniter(CI)的数据库操作函数
  2. POJ3335(半平面交)
  3. 德国政府发布新网络安全战略
  4. windows平台RSA密钥生成
  5. Cuboid特征提取算法
  6. boost::phoenix::arg_names::arg1用法的测试程序
  7. CheckStyle使用手册(一)
  8. leetcode python3 简单题53. Maximum Subarray
  9. java ip地址类,实现获取主机名称,IP地址的类 (java)
  10. 我的博客css得到别人的认可
  11. 360浏览器打开html不能正常显示图片,360浏览器网页不显示图片?如何显示出来...
  12. websphere liberty
  13. 卖计算机配件的二手平台,电脑哪些配件适合买二手,哪些最好入新?
  14. 微信小程序 开发工具 项目创建步骤
  15. android 保存图片到手机相册,并通知相册刷新
  16. 深度学习研究生如何快速提升代码能力,写出高效的代码?
  17. 6个评委对5选手打分,去掉最高分和最低分,然后求出平均分就是他们的成绩。Sort函数给评分排序,在头文件algorithm中
  18. 关于IO流和String常见的一些面试题
  19. centos架设FTP服务器
  20. osgEarth根据DEM地形的高程设置不同的颜色

热门文章

  1. PySide: 信号、槽
  2. spring MVC 项目 WEB-INF下的jsp不能加载css文件
  3. [stl]集合相似度(PTA)
  4. C#图解教程 第十八章 枚举器和迭代器
  5. 算法编程:找一个数在一系列数中出现次数一半以上
  6. MFC:ID命名和数字约定
  7. ElasticSearch中doc values和fielddata
  8. KafkaConsumer分析
  9. 关于FPGA核心bug解决
  10. (4)ISE14.7 ChipScope使用流程(FPGA不积跬步101)