写一个死锁程序

/**

  • 死锁
  • 产生死锁的原因
  • 多个线程由于争夺资源而产生的资源阻塞状态
  • 同步的前提
  • 2个以上的线程 包含2
  • 多个线程使用同一个锁
  • @author WangShuang
  • */
    public class Demo {
    public static void main(String[] args) {
    Test t = new Test(true);
    Thread rr=new Thread(t);
    rr.start();
    Test t1 = new Test(false);
    Thread rr1=new Thread(t1);
    rr1.start();
    }
    }
    class MyLock{
    public static Object lockA = new Object();
    public static Object lockB = new Object();
    }
    class Test implements Runnable{
    private boolean flag;
    public Test( boolean flag){br/>this.flag=flag;
    }
    @Override
    public void run() {
    if(flag){
    synchronized (MyLock.lockA) {
    System.out.println("if lockA");
    synchronized (MyLock.lockB) {
    System.out.println("if lockB");
    }
    }
    }else{
    synchronized (MyLock.lockB) {
    System.out.println("else lockB");
    synchronized (MyLock.lockA) {
    System.out.println("else lockA");
    }
    }
    }
    }
    }

写一个死锁程序

原文地址:http://blog.51cto.com/13579086/2065319

时间: 2024-11-09 00:29:58

写一个死锁程序的相关文章

写一个ajax程序就是如此简单

写一个ajax程序就是如此简单 ajax介绍: 1:AJAX全称为Asynchronous JavaScript and XML(异步JavaScript和XML),指一种创建交互式网页应用的网页开发技术.     2:基于web标准XHTML+CSS的表示:     3:使用 DOM进行动态显示及交互:     4:使用 XML 和 XSLT 进行数据交换及相关操作:     5:使用 XMLHttpRequest 进行异步数据查询.检索: 程序员应用ajax的途经: 1:.Net下的Ajax

用vi写一个C 程序

? 1 2 3 4 [email protected]:~# ls 1.txt  3.txt  5.txt   6.py   evilxr      test 2.txt  4.txt  5.txt~  e.txt  evilxr.txt [email protected]:~# vi test.c [email protected]:~# cat test.c #include <stdio.h> int add(int a, int b) { return a + b; } int mai

Linux内核学习--写一个c程序,并在内核中编译,运行

20140506 今天开始学习伟大的开源代表作:Linux内核.之前的工作流于几个简单命令的应用,因着对Android操作系统的情愫,"忍不住"跟随陈利君老师的步伐,开启OS内核之旅.学习路径之一是直接从代码入手,下面来写一个hello.c内核模块. 说明: 这个路径/usr/src/linux-headers-2.6.32-22/include/linux是引用的头文件. 内核模块固定格式:module_init()/ module_exit(),module函数是从头文件中来的.

[Java] 通过控制台写一个html程序,并保存

package test.stream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; /** * 通过控制台写一个html程序,并输出 * @author Frost.Yen * @E-

软件测试第二次作业 - 写一个Java程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。

题目一: 1. 写一个Java程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示.(单词之间用空格隔开,如“Hello World My First Unit Test”): 2. 编写单元测试进行测试: 3. 用ElcEmma查看代码覆盖率,要求覆盖率达到100%. Demo类: 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 import java.

为Dynamics 365写一个简单程序实现解决方案一键迁移

关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复258或者20170627可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me . 在我们做项目的过程中,一般会涉及到多个Dynamics 365环境,一般包括一个开发环境.一个SIT环境,一个UAT环境和一个生产环境,经常涉及到解决方案从开发环境迁移到SIT环境,从开发环境迁移到UAT环境,从开发环境迁移到UAT环境等等.一般手工操作是先更改解决方案版本,保存后发布解决

ubuntu vscode 写一个C++程序

Ubuntu如何使用Vscode写C++代码 (一). 下载Vscode (1). 打开Ubuntu软件 (2). 搜索Vscode,下载并运行. (二). 安装C++ (1). 看到右边的列表,点击最下面的 (2). 然后我们搜索和下载 C++ 还有 C++ Intellisense(自动补全) (三). 配置 (1). 我们回到欢迎界面,然后选择一个目录(Open folder) (2). 我们创建一个cpp文件,并且命名为001.cpp (3). 按下F5,然后选择C++ (4). 这个时

用android去写一个小程序

前言: 软工的一个小作业:实现"黄金分割小游戏", 需要结对编程,队友:陈乐云(http://www.cnblogs.com/clyln/),用时两天. 早期思路设计: 采用键值对的形式,以Map作为存储结构.优点:能够将数据与用户对应,缺点:采用java实现过于复杂,工程量过大,需要消耗大量资源,类型转换容易出错. 后期思路设计: 采用二维数组:第一行用于存储用户输入原始数据,第二行用于存储中间数据(第一行的与G值做差的绝对值),第三行用于保存用户得分. 优点:实现简单,易于运算 分

1.1如何写一个c++程序

1.了解了class机制赋予程序内之类型抽象能力2.class到底是什么,class 分为2部分 一是头文件 二是代码文件 3 变量属于类型,就好比人属于人类. 4using namespace 的作用 原文地址:https://www.cnblogs.com/HL77961/p/12642867.html