Java中关于LockSupport的简单入门记录
LockSupport的JDK的文档描述:Basic thread blocking primitives for creating locks and other synchronization classes.(对于创建lock和其他同步类的基础线程原语)。在JUC中有大量使用!
1 示例:
在主线程中调用LockSupport.park(currentThread);将组线程阻塞,然后通过子线程完成5秒睡眠换后唤醒主线程。
import java.util.concurrent.locks.LockSupport;
public class LockSupportDemo {
public static void main(String[] args) {
//获取当前线程
final Thread currentThread = Thread.currentThread();
Runnable runnable = new Runnable() {
@Override
public void run() {
try {
//睡眠5秒,等待主线程调用park
Thread.sleep(5000);
System.out.println("子线程进行unpark操作!");
// 进行唤醒给定的currentThread线程
LockSupport.unpark(currentThread);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
new Thread(runnable).start();
System.out.println("开始阻塞!");
// 进行阻塞给定的currentThread线程
LockSupport.park(currentThread);
System.out.println("结束阻塞!");
}
}
示例2:
import java.util.concurrent.locks.LockSupport;
public class LockSupportDemo {
public static void main(String[] args) {
//获取当前线程
final Thread currentThread = Thread.currentThread();
//在park之前先进行一次unpark
LockSupport.unpark(currentThread);
System.out.println("开始阻塞!");
// 由于在park之前进行了一次unpark,所以会低调本次的park操作。因而不会阻塞在此处
LockSupport.park(currentThread);
System.out.println("结束阻塞!");
}
}

Java中关于LockSupport的简单入门记录的更多相关文章
- java中Color类的简单总结
java中Color类的简单总结 1.颜色的常识 任何颜色都是由三原色组成(RGB),JAVA中支持224为彩色,即红绿蓝分量取值 介于0-255之间(8位表示) 2.Color类中的常量 publi ...
- PHP中的IMAP扩展简单入门
对于邮件处理来说,大家比较熟悉的应该是 POP3 . SMTP 这类的协议,而今天我们介绍的 IMAP 其实也是非常常用的一种邮件处理协议.它和 POP3 比较类似,都是以接收处理邮件为主.不过相对于 ...
- Java日志系统---Logger之简单入门
Java 中自带的日志系统,今天抽空了解了一点,算是入了门,所以将自己的一些心得记录下来,以备日后查看,有兴趣的朋友,看到此文章,觉得有错误或需要添加的地方,请在下方评论留言,大家可以共同进步,谢谢: ...
- 【java开发系列】—— spring简单入门示例
1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控制反转 ...
- Oracle触发器简单入门记录
写在前面: 最近,老项目新增了日报优化的需求,丽姐让我用触发器去实现当数据插入或者更新的时候,实现对日报表数据更新操作.嗯嗯嗯呢,之前学习数据库的时候,有碰到过触发器,但都是一跳而过,也没怎么去真正的 ...
- 个人对Java中多态的一些简单理解
什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一 ...
- Java中多态的一些简单理解
什么是多态 .面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. .多态的定义:指允许不同类的对象对同一消息做出响应.即 ...
- 记Java中有关内存的简单认识
一.Java内存划分 分为五个部分,可以参考这篇笔记简单认识一下: https://www.cnblogs.com/unleashed/p/13268027.html 栈 堆 方法区 本地方法栈 寄存 ...
- Java中对session的简单操作
1.jsp中操作session <% String name=(String)request.getSession().getAttribute("username"); / ...
随机推荐
- API 接口返回值
API 接口返回值 https://blog.csdn.net/baple/article/details/52925772
- [转]微擎MVC
本文转自:https://www.kancloud.cn/donknap/we7/134626 控制器 控制器以文件夹.文件的形式组织,位于系统的 source 目录下,每一个目录代表一个 contr ...
- SQL Server 2012使用Offset/Fetch Next实现分页
在Sql Server 2012之前,实现分页主要是使用ROW_NUMBER(),在SQL Server2012,可以使用Offset ...Rows Fetch Next ... Rows onl ...
- C#格式规范
前言 之前工作中整理的一篇编码规范. 代码注释 注释约定 只在需要的地方加注释,不要为显而易见的代码加注释 使用 /// 生成的xml标签格式的文档注释 方法注释 所有的方法都应该以描述这段代码的功能 ...
- 正则检查是否为IP地址
/// <summary> /// 是否为ip /// </summary> /// <param name="ip"></param&g ...
- Android开发——adb连接夜神模拟器
夜神模拟器安装完之后,打开模拟器,在cmd命令行中进入到夜神模拟器的bin目录 本来以为不支持中文的,没想到确实支持的哈哈 之后输入adb connect 就能成功连接上了 PS:在Android S ...
- Docker常用命令(二)
Docker常用命令 查看Docker所有正在运行的容器 docker ps 查看Docker已退出的容器 docker ps -a 查看Docker所有镜像 docker images 删除镜像 删 ...
- mongodb 权限设置--用户名、密码、端口
转自:http://www.cnblogs.com/valor-xh/p/6369432.html 一.关于权限的默认配置 在默认情况下,mongod是监听在0.0.0.0之上的,任何客户端都可以直接 ...
- 【IDEA&&Eclipse】4、IntelliJ IDEA上操作GitHub
IntelliJ IDEA集成了对GitHub的支持,使上传代码到GitHub和从GitHub下载代码更加方便快捷. 1. 分享代码到GitHub 首先需要在IntelliJ配置Git,如果没有正确配 ...
- hash table (youtube 2)
https://www.youtube.com/watch?v=jEdaduyLLqY