您当前的位置: 首页 > 

星夜孤帆

暂无认证

  • 1浏览

    0关注

    626博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

LockSupport

星夜孤帆 发布时间:2021-04-17 20:24:38 ,浏览量:1

一、LockSupport 1.1 LockSupport是什么

Java Api

LockSupport中的park()和unpark()的作用分别是阻塞线程和解除阻塞线程

1.2 线程等待唤醒机制(wait/notify)

1.2.1 三种让线程等待和唤醒的方法

1.2.2 Object类种的wait和notify方法实现线程等待和唤醒

1.正常

 2.异常1

wait方法和notify方法,两个都去掉同步代码块。

3.异常2

1.2.3 Condition接口中的await后signal方法实现线程的等待和唤醒

1.2.4 LockSupport类中的park等待和unpark唤醒

1.是什么

通过park()和unpark(thread)方法来实现阻塞和唤醒线程的操作

2.主要方法

阻塞

permit默认是0,所以一开始调用park()方法,当前线程就会阻塞,直到别的线程将当前线程的permit设置为1时,park方法会被唤醒,然后,会将permit再次设置为0并返回。

唤醒

调用unpark(thread)方法后,就会将thread线程的许可permit设置成1(注意多次调用unpark方法,不会累加,permit值还是1),会自动唤醒thread线程,即之前阻塞中的LockSupport.park()方法会立即返回。

3.代码

正常+无锁块要求

之前错误的先唤醒后等待,LockSupport照样支持

4.总结

视频教程

关注
打赏
1636984416
查看更多评论
立即登录/注册

微信扫码登录

0.0369s