博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LockSupport中的park() 和 unpark()与Object中的wait()和notify()
阅读量:4181 次
发布时间:2019-05-26

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

package com.demo.Interruput;/** * @author xiaobu * @version JDK1.8.0_171 * @date on  2019/9/25 17:36 * @description 说明:park和wait的区别。wait让线程阻塞前,必须通过synchronized获取同步锁。 */public class WaitTest {
public static void main(String[] args) {
ThreadA threadA = new ThreadA("A"); synchronized (threadA){
try {
System.out.println(Thread.currentThread().getName() + " start"); threadA.start(); System.out.println(Thread.currentThread().getName() + " block"); threadA.wait(); System.out.println(Thread.currentThread().getName() + " continue"); } catch (InterruptedException e) {
e.printStackTrace(); } } } static class ThreadA extends Thread{
public ThreadA(){
} public ThreadA(String name){
super(name); } @Override public void run() {
synchronized (this){
System.out.println("通知notify"); notify(); } } }}
package com.demo.Interruput;import java.util.concurrent.locks.LockSupport;/** * @author xiaobu * @version JDK1.8.0_171 * @date on  2019/9/25 17:36 * @description */public class LockSupportTest {
private static Thread mainThread; public static void main(String[] args) {
ThreadA threadA = new ThreadA("A"); mainThread = Thread.currentThread(); System.out.println(Thread.currentThread().getName() + " start"); threadA.start(); System.out.println(Thread.currentThread().getName() + " block"); LockSupport.park(mainThread); System.out.println(Thread.currentThread().getName() + " continue"); } static class ThreadA extends Thread {
public ThreadA() {
} public ThreadA(String name) {
super(name); } @Override public void run() {
System.out.println(Thread.currentThread().getName() + " wakeup others"); LockSupport.unpark(mainThread); } }}

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

你可能感兴趣的文章
ioctl在socket中的一些用法及示例
查看>>
Linux设备驱动--块设备(二)之相关结构体
查看>>
Linux设备驱动--块设备(四)之“自造请求”
查看>>
Nand Flash和Nor Flash相关知识
查看>>
NAND flash和NOR flash的区别
查看>>
writeb(), writew(), writel(),readb(), readw(), readl() 宏函数
查看>>
NOR Flash擦写和原理分析
查看>>
51单片机程序执行流程(STARTUP.A51)
查看>>
原码, 反码, 补码 详解
查看>>
Java自学第一阶段(二)- 小试牛刀
查看>>
Java自学第一阶段(三)- 万能的变量
查看>>
Java自学第一阶段(四)-万能的变量(2)
查看>>
HashMap存储原理以及与hashcode、equals方法的关系
查看>>
python3.6在windows下安装scrapy遇到的问题总结
查看>>
pycharm中打开scrapy项目,import scrapy报错问题
查看>>
scrapy爬取图片,自定义图片下载路径和图片名称
查看>>
python3下import MySQLdb出错问题
查看>>
Maven搭建SSM框架(eclipse)
查看>>
synchronized+Integer模拟火车票预售,出现的问题总结
查看>>
沉浸式过山车,感受巨蚁数字心灵的激情
查看>>