Java并发之死锁实例
时间:2022-07-24
本文章向大家介绍Java并发之死锁实例,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 package com.thread.test.thread;
2
3 /**
4 * Created by windwant on 2016/6/3.
5 */
6 public class MyTestDeadLock {
7 public void run() {
8 MyThread mt = new MyThread();
9 new Thread(mt, "zhangsan").start();
10 new Thread(mt, "lisi").start();
11 }
12
13 class MyThread implements Runnable {
14 private Object o1 = new Object();
15 private Object o2 = new Object();
16 private boolean flag = true;
17
18
19 public void run() {
20 if (flag) {
21 flag = false;
22 synchronized (o1) {
23 System.out.println(Thread.currentThread().getName() + " have o1");
24 try {
25 Thread.sleep(100);
26 } catch (InterruptedException e) {
27 e.printStackTrace();
28 }
29 synchronized (o2) {
30 System.out.println(Thread.currentThread().getName() + " have o2");
31 }
32 }
33 } else {
34 flag = true;
35 synchronized (o2) {
36 System.out.println(Thread.currentThread().getName() + " have o2");
37 try {
38 Thread.sleep(100);
39 } catch (InterruptedException e) {
40 e.printStackTrace();
41 }
42 synchronized (o1) {
43 System.out.println(Thread.currentThread().getName() + " have o1");
44 }
45 }
46 }
47 }
48 }
49
50 public static void main(String[] args) {
51 new MyTestDeadLock().run();
52 }
53 }
项目地址:https://github.com/windwant/threadtest
- 想打造一个神经网络,自动给黑白照片上色?这儿有一份超详细教程
- WP_Widget_PostViews has a deprecated constructor 报错解决
- 详解Linux系统的CPU负载均值
- Linux服务器的进程查看命令详解
- 另类SEO分享:利用JS封装iframe躲过搜索引擎的抓取
- Linux :MAC 地址克隆方法
- 解决WordPress修改数据库表前缀后无法登陆的问题
- 解决启用WP-Super-Cache后出现的几个问题
- Shell下制作自解压安装包,实现脚本的简单加密
- WordPress(Twenty Ten主题)文章副标题修改教程
- ipvsadm启动报错解决办法,另附ipvsadm详细参数
- Linux:mv 命令的10个实用例子
- Linux优化方法收集与整理
- 常用MySQL语句搜集整理
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Kotlin的枚举与异常示例详解
- Android自定义View的使用及其原理知识点总结
- Android中Window的管理深入讲解
- Android UI绘制流程及原理详解
- flutter 轮播图动态加载网络图片的方法
- Kotlin如何捕获上下文中的变量与常量详解
- Android使用webView长按保存下载网络图片
- Android实现万能自定义阴影控件实例代码
- 浅析android studio3.5中使用recycleview的包
- Android自定义View实现拼图小游戏
- 解决android设备断电重启后WIFI不能自动重连的BUG(收藏)
- Android gradle配置抽取合并的操作步骤
- Android BottomNavigationBar底部导航的使用方法
- Android超清晰6.0权限申请AndPermission
- Android仿微信录制语音功能