博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程中死锁的demo
阅读量:6992 次
发布时间:2019-06-27

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

/*

虽然同步的出现解决了线程安全问题。
但是也带来了一些弊端:
1,效率会降低。
2,容易引发死锁。

死锁经常出现的状况为:同步嵌套。

*/

class Test implements Runnable{	private boolean flag;	Test(boolean flag)	{		this.flag = flag;	}	public void run()	{		if(flag)		{			while(true)			{				synchronized(MyLock.locka)				{					System.out.println(Thread.currentThread().getName()+"...if......locka");					synchronized(MyLock.lockb)					{						System.out.println(Thread.currentThread().getName()+"...if......lockb");											}				}			}		}		else		{			while(true)			{				synchronized(MyLock.lockb)				{					System.out.println(Thread.currentThread().getName()+"...else..........lockb");					synchronized(MyLock.locka)					{						System.out.println(Thread.currentThread().getName()+"...else..........locka");											}				}			}		}	}}class MyLock{	public static Object locka = new Object();	public static Object lockb = new Object();}class DeadLockTest {	public static void main(String[] args) 	{		Test t1 = new Test(true);		Test t2 = new Test(false);		Thread th1 = new Thread(t1,"Сǿ");		Thread th2 = new Thread(t2,"κӆ");		th1.start();		th2.start();	}}

  

转载于:https://www.cnblogs.com/liushisaonian/p/8595264.html

你可能感兴趣的文章
正则基础
查看>>
encode和decode的妙用
查看>>
如何消除win32 console程序的黑色dos界面
查看>>
Sublime里直接运行PHP
查看>>
MongDB修改器
查看>>
linux下sed的使用(下)
查看>>
toad常用快捷键
查看>>
MyEclipse10 的open in explorer无反应或者出错的解决办法
查看>>
使用命令行工具对LSI阵列卡进行高效管理
查看>>
Linux中的文本处理工具
查看>>
利用Java编码实现对oracle数据库的操作
查看>>
IOS学习笔记(八)之UIActivityIndicatorView(活动指示器视图)的基本概念和使用方法
查看>>
java字符串分割处理split及特殊符号
查看>>
Kubernetes Dashboard的安装与配置
查看>>
GITlAB
查看>>
远程连接mysql慢
查看>>
CentOS 6 PXE无人值守安装
查看>>
桌面虚拟化发展
查看>>
我的友情链接
查看>>
CFSSL使用方法重新整理说明
查看>>