博客
关于我
Juc20_LockSupport
阅读量:198 次
发布时间:2019-02-28

本文共 1405 字,大约阅读时间需要 4 分钟。

LockSupport??

1. ???LockSupport?

LockSupport ? Java ??????????????????????????????????? permit???????????????????????????

LockSupport ??????? park() ? unpark()??????????????????????????????????? Unsafe ?? native ????????????????

2. ????

  • permit???0??????? park() ?????????????????????? unpark() ??????
  • park() ??????????????????????????? unpark() ??????? 1?
  • park(Object blocker)?????????????????????????

3. ????

  • unpark(Thread thread)??????? permit ?? 1?????????????????permit ?????? 1??????? unpark() ??????????????
  • unpark() ?????????????????????

4. LockSupport ???

  • ?????LockSupport ???? permit ???????????????
  • ???????????????????????????????????

5. ????

??????? LockSupport ?????????

public class LockSupportDemo {    public static void main(String[] args) {        Thread t1 = new Thread(() -> {            System.out.println(Thread.currentThread().getName() + "\t" + "??A??");            LockSupport.park();            System.out.println(Thread.currentThread().getName() + "\t" + "?B??");        }, "A");        t1.start();        Thread t2 = new Thread(() -> {            System.out.println(Thread.currentThread().getName() + "\t" + "??A??");            LockSupport.unpark(t1);        }, "B");        t2.start();    }}

6. ??????

  • ???????????????????????????????????? park() ??????? permit ??????????????

  • ???????????????? permit ??? 1??????? unpark() ??????????? park() ?????????????? permit ??? 0 ???????

转载地址:http://ledj.baihongyu.com/

你可能感兴趣的文章
PyQt5——开发地图软件
查看>>
PyQt5——装饰器信号与槽
查看>>
PyQt5——软件密码登陆跳转主界面
查看>>
PyQt5——通过信号与槽进行数据传输
查看>>
PyQt5“定时器不能从另一个线程启动“更改 QLabel 的大小时出错
查看>>
pyqt5不显示窗口
查看>>
pyqt5任意组件的拖拽问题
查看>>
PyQt5信号与槽学习笔记——自定义信号与槽(二)
查看>>
PyQt5学习笔记——信号与槽
查看>>
PyQt5开发暗黑风格的计时器
查看>>
pyqt5教程11:绘制外观
查看>>
pyqt5教程12:拖放功能
查看>>
pyqt5教程13:客户定制组件
查看>>
pyqt5教程6:信号和事件
查看>>
PyQt5教程7:布局Layout管理
查看>>
pyqt5教程8:对话框
查看>>
pyqt5教程9:Widgets组件
查看>>
PyQt5教程——组件(7)
查看>>
Pytest monkeypatch不适用于导入的函数
查看>>
Pytest 命令行报错: Hint: make sure your test modules/packages have valid Python names.
查看>>