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

网站制作主题思路/好口碑关键词优化地址

网站制作主题思路,好口碑关键词优化地址,野望原文及翻译,阿里免费做网站死锁的定义1   死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死…
  1. 死锁的定义
    1. 1   死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。

 

当然死锁的产生是必须要满足一些特定条件的: 
1.互斥条件:进程对于所分配到的资源具有排它性,即一个资源只能被一个进程占用,直到被该进程释放 
2.请求和保持条件:一个进程因请求被占用资源而发生阻塞时,对已获得的资源保持不放。 
3.不剥夺条件:任何一个资源在没被该进程释放之前,任何其他进程都无法对他剥夺占用 
4.循环等待条件:当发生死锁时,所等待的进程必定会形成一个环路(类似于死循环),造成永久阻塞。

 

 

 

package com.legend.domain;

 

import java.util.Date;

/**

* 死锁案例

* @author qichunlin

*

*/

public class LockTest {

public static String obj1 = "obj1";

public static String obj2 = "obj2";

 

public static void main(String[] args) {

LockA la = new LockA();

new Thread(la).start();

LockB lb = new LockB();

new Thread(lb).start();

}

}

 

class LockA implements Runnable {

public void run() {

try {

System.out.println(new Date().toString() + " LockA 开始执行");

while (true) {

synchronized (LockTest.obj1) {

System.out.println(new Date().toString() + " LockA 锁住 obj1");

Thread.sleep(3000); // 此处等待是给B能锁住机会

synchronized (LockTest.obj2) {

System.out.println(new Date().toString() + " LockA 锁住 obj2");

Thread.sleep(60 * 1000); // 为测试,占用了就不放

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

 

class LockB implements Runnable {

public void run() {

try {

System.out.println(new Date().toString() + " LockB 开始执行");

while (true) {

synchronized (LockTest.obj2) {

System.out.println(new Date().toString() + " LockB 锁住 obj2");

Thread.sleep(3000); // 此处等待是给A能锁住机会

synchronized (LockTest.obj1) {

System.out.println(new Date().toString() + " LockB 锁住 obj1");

Thread.sleep(60 * 1000); // 为测试,占用了就不放

}

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

 

 

 

 

 

此时死锁产生。

为了解决这个问题,我们不使用显示的去锁,我们用信号量去控制。

信号量可以控制资源能被多少线程访问,这里我们指定只能被一个线程访问,就做到了类似锁住。而信号量可以指定去获取的超时时间,我们可以根据这个超时时间,去做一个额外处理。

对于无法成功获取的情况,一般就是重复尝试,或指定尝试的次数,也可以马上退出。

 

转载于:https://www.cnblogs.com/qichunlin/p/7628066.html

http://www.lbrq.cn/news/1394209.html

相关文章:

  • 口碑最好的装饰公司/seo的工作流程
  • 我的世界充钱网站怎么做/2022年新闻热点事件
  • 东莞市手机网站建设平台/成人计算机培训机构哪个最好
  • 成都双语网站开发/汕头网站建设平台
  • 门户网站 营销/最近国际新闻大事20条
  • 如何制作一个软件/赣州seo外包
  • 河南网站建设公司哪个好呀/北京aso优化
  • 印后设备网站建设/整站seo优化哪家好
  • wordpress链接翻译/优化网站怎么真实点击
  • 公司网站建设方案书/活动软文怎么写
  • 山东省青州市建设局网站/登封网站关键词优化软件
  • 做网站在哪里买空间域名/子域名查询工具
  • 如何整理网站/网页生成app
  • 青海高端网站建设价格/南京seo推广公司
  • 网站开发工程师课程/竞价托管哪家公司好
  • 网络工程师职业分析/搜索引擎优化的简写是
  • 网站建设维护 知乎/最近七天的新闻大事
  • 北京电商平台网站建设/2023b站推广大全
  • 广西壮锦网站建设策划书/关键词优化的作用
  • 网站的定位/友情链接的形式
  • 莞城东莞网站建设/网站设计方案
  • 青岛的网站建设公司哪家好/企业seo外包公司
  • 做网站需要哪些费用支出/广州网络推广外包平台
  • 中山医疗网站建设/海外广告优化师
  • 哈尔滨专业官网建站企业/网络推广比较经典和常用的方法有
  • 调用wordpress编辑器/seo推广软件品牌
  • 苹果电脑做网站好用吗/网站推广的10种方法
  • 品牌型网站制作价格/代刷网站推广链接0元价格
  • 大气网站建设/苏州整站优化
  • 提供网站推广公司电话/网站免费网站免费优化优化
  • 数据结构之排序大全(4)
  • UTF-8 编解码可视化分析
  • Java并发容器详解
  • Linux下Mysql命令,创建mysql,删除mysql
  • c#联合halcon的基础教程(案例:亮度计算、角度计算和缺陷检测)(含halcon代码)
  • 电影购票+票房预测系统 - 后端项目介绍(附源码)