当前位置: 首页 > news >正文

广宁城乡建设网站重庆为什么导航用不了

广宁城乡建设网站,重庆为什么导航用不了,漳州房产网,360网站推广电话线程死锁是线程同步的时候可能出现的一种问题 文章目录1. 线程的死锁1.1 基本介绍1.2 应用案例2. 释放锁2.1 下面的操作会释放锁2.2 下面的操作不会释放锁1. 线程的死锁 1.1 基本介绍 多个线程都占用了对方的锁资源,但不肯相让,导致了死锁,…

线程死锁是线程同步的时候可能出现的一种问题

文章目录

  • 1. 线程的死锁
    • 1.1 基本介绍
    • 1.2 应用案例
  • 2. 释放锁
    • 2.1 下面的操作会释放锁
    • 2.2 下面的操作不会释放锁

1. 线程的死锁

1.1 基本介绍

  • 多个线程都占用了对方的锁资源,但不肯相让,导致了死锁,在编程的时候是一定要避免死锁的发生

1.2 应用案例

tom:你先完成作业,才让你玩手机
jack:你先让我玩手机,我才完成作业
  • 模拟线程死锁
public class DeadLock_ {public static void main(String[] args) {//模拟死锁现象DeadLockDemo A = new DeadLockDemo(true);A.setName("A线程");DeadLockDemo B = new DeadLockDemo(false);B.setName("B线程");A.start();B.start();}
}//线程
class DeadLockDemo extends Thread {static Object o1 = new Object();// 保证多线程,共享一个对象,这里使用staticstatic Object o2 = new Object();boolean flag;public DeadLockDemo(boolean flag) {//构造器this.flag = flag;}@Overridepublic void run() {//业务逻辑的分析://1. 如果flag 为 T, 线程A 就会先得到/持有 o1 对象锁, 然后尝试去获取 o2 对象锁//2. 如果线程A 得不到 o2 对象锁,就会Blocked//3. 如果flag 为 F, 线程B 就会先得到/持有 o2 对象锁, 然后尝试去获取 o1 对象锁//4. 如果线程B 得不到 o1 对象锁,就会Blockedif (flag) {synchronized (o1) {//对象互斥锁, 下面就是同步代码System.out.println(Thread.currentThread().getName() + " 进入1");synchronized (o2) { // 这里获得li对象的监视权System.out.println(Thread.currentThread().getName() + " 进入2");}}} else {synchronized (o2) {System.out.println(Thread.currentThread().getName() + " 进入3");synchronized (o1) { // 这里获得li对象的监视权System.out.println(Thread.currentThread().getName() + " 进入4");}}}}
}
  • 控制台可以看到线程死锁后就卡住了不会再打印下面的语句
    在这里插入图片描述

2. 释放锁

  • 线程的状态转换图
    在这里插入图片描述

2.1 下面的操作会释放锁

  1. 当前线程的同步方法、同步代码块执行结束
  2. 当前线程在同步代码块、同步方法中遇到 break、return
  3. 当前线程在同步代码块、同步方法中出现了未处理的ErrorException,导致异常结束
  4. 当前线程在同步代码块、同步方法中执行了线程对象的wait()方法,当前线程暂停,并释放锁

2.2 下面的操作不会释放锁

  1. 线程执行同步代码块或同步方法时,程序调用Thread.sleep()Thread.yield()方法暂停当前线程的执行,不会释放锁
  2. 线程执行同步代码块时,其他线程调用了该线程的suspend()方法将该线程挂起,该线程不会释放锁
    注意:应尽量避免使用suspend()resume()来控制线程,该方法不再推荐使用
http://www.yayakq.cn/news/756147/

相关文章:

  • 网站系统优化网站服务器的作用和功能有哪些
  • 建设充值网站多钱北京比较好的网站开发公司
  • 个人备案经营网站备案网络卡哪个公司的好
  • 福田网站建设开发团队node wordpress
  • 南通专业网站设计制作网站开发技术主题
  • 响应式建设网站wordpress幻灯片教程视频教程
  • 北京网站技术开发公司免费建站网站一区黄在线国产
  • 青岛一品网站建设温州人才网招聘网官网
  • 传奇手游新开网站建设银行官方网站首页个人登录
  • wordpress 整站打包百度一下你就知道手机版官网
  • 南昌招商网站建设入门网站分析应该怎么做
  • 常做网站首页的文件名合肥市门窗工程在哪个网站接活做
  • 做高清图的网站国外网站页面设计
  • 济宁市兖州区城市建设局网站在线设计平台的用户群分析
  • 网站转移空间设计制作海报教案
  • 快速搭建网站框架新手攻略网络教育平台登录入口
  • 招聘网站怎么做吸引人网站网站开发
  • 做历史课件用哪个网站比较好wordpress客户端有什么用
  • 厦门市建设安全管理协会网站wordpress底部
  • 域名注册服务网站查询怎么做直播视频教学视频网站
  • 山东做外贸网站的公司江西省赣州市中考成绩查询时间
  • 网站建设 知识产权中小企业上市公司名单
  • 网站建设有几种方法网站如何快速被
  • 营销型网站建设指导原则北京微信网站开发费用
  • 公司网站怎么能被百度收录设计制作服务方案
  • 中国最大的网站建设2023年重启核酸
  • 茂名网站建设方案开发企业官网型网站建设
  • 在阿里云网站建设设计一站式服务
  • 营销型企业网站案例分析网站备案 域名备案
  • 档案网站建设思考淘宝网中国站电脑版登录