多线程,死锁,DeadLock
/* 死锁。 同步中嵌套同步。*/class Ticket implements Runnable {private int tick = 1000;Object obj = new Object();boolean flag = true;public void run(){if(flag){while(true){synchronized(obj){show();}}}elsewhile(true)show();}public synchronized void show()//this {synchronized(obj){if(tick>0){try{Thread.sleep(10);}catch(Exception e){}System.out.println(Thread.currentThread().getName()+"....code : "+ tick--);}}} }class DeadLockDemo {public static void main(String[] args) {Ticket t = new Ticket();Thread t1 = new Thread(t);Thread t2 = new Thread(t);t1.start();try{Thread.sleep(10);}catch(Exception e){}t.flag = false;t2.start();} }
第二个例子:
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 {static Object locka = new Object();static Object lockb = new Object(); }class DeadLockTest {public static void main(String[] args) {Thread t1 = new Thread(new Test(true));Thread t2 = new Thread(new Test(false));t1.start();t2.start();} }
转载于:https://www.cnblogs.com/vaer/p/4369862.html
多线程,死锁,DeadLock相关推荐
- Java多线程学习之路(四)---死锁(DeadLock)
Java多线程学习之路(四)-死锁(DeadLock) 1.定义 死锁就是多个线程在竞争共享资源的时候,相互阻塞,不能脱身的状态(个人理解).其实死锁一定程度上可以看成一个死循环. 举个现实生活中的例 ...
- Java面试必问:死锁(多线程死锁+数据库死锁)
死锁 接下来从几个方面介绍: 多线程死锁 多线程死锁解决办法 数据库死锁 数据库死锁解决办法 多线程死锁是怎么造成的? 多线程锁定同一资源会造成死锁 线程池中的任务使用当前线程池也可能出现死锁 参考连 ...
- linux查看java线程死锁_ccriticalsection 多线程 死锁_c++ 线程死锁_linux 线程 死锁
qq_407283393122018-12-10 一个很蠢的造成死锁的问题 wanglt3113172018-12-12 什么是死锁,死锁的原因,如何避免 apanying902019-01-09 c ...
- 同软件多个线程设置不同ip_5-13网络编程(附带多线程死锁,线程通信)
0513多线程 死锁 当线程任务中出现了多个同步(多个锁)时,如果同步中嵌套了其他的同步.这时容易引发一种现象:程序出现无限等待,这种现象我们称为死锁 线程通信 生产者消费者模式 模拟街道案例 wai ...
- 一个多线程死锁案例,如何避免及解决死锁问题?
多线程死锁在java程序员笔试的时候时有遇见,死锁概念在之前的文章有介绍,大家应该也都明白它的概念,不清楚的去翻看历史文章吧. 下面是一个多线程死锁的例子 public class lock{priv ...
- 什么是死锁(deadlock)?
● 请问什么是死锁(deadlock)? 考察点:线程死锁 参考回答: 两个线程或两个以上线程都在等待对方执行完毕才能继续往下执行的时候就发生了死锁.结果就是这些线程都陷入了无限的等待中. 例如,如果 ...
- ABAP面试题系列:写一组会出现死锁(Deadlock)的ABAP程序
我们在计算机操作系统这门专业课上,学过死锁(Deadlock)的概念:两个或两个以上的进程(或线程)在执行过程中,由于竞争资源而造成的一种阻塞的现象,称为死锁.若无外力干预,这些处于死锁状态的进程将永 ...
- 一个多线程死锁案例,如何避免及解决死锁问题
转载自 一个多线程死锁案例,如何避免及解决死锁问题 多线程死锁在java程序员笔试的时候时有遇见,死锁概念在之前的文章有介绍,大家应该也都明白它的概念,不清楚的去翻看历史文章吧. 下面是一个多线程死锁 ...
- java 线程死锁简单例子_java 多线程死锁详解及简单实例
java 多线程死锁 相信有过多线程编程经验的朋友,都吃过死锁的苦.除非你不使用多线程,否则死锁的可能性会一直存在.为什么会出现死锁呢?我想原因主要有下面几个方面: (1)个人使用锁的经验差异 (2) ...
最新文章
- ubuntu 鼠标变成黑色的叉并且图标消失
- python3爬虫入门教程-python3爬虫入门程序
- stm32之实时时钟RTC(掉电计时保持、秒中断、闹钟中断、溢出中断)
- 重装机兵java_重装机兵之机甲咆哮
- CSS布局奇淫巧计之-强大的负边距
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(Anaconda软件使用)
- python列表字典_Python常用对字典、列表的操作
- drupal php filter,Drupal A-Z and number filter
- Vant报错:[Vue warn]: Invalid prop: type check failed for prop “lazyLoad“. Expected Boolean, got String
- 前端性能优化——http首部
- python 非线性规划_支持向量机:Stata 和 Python 实现
- Excel宏去除汉字
- hive表加载数据的不同方式
- mysql 2182_MySql常用命令总结
- 软测人员周报怎么写?(模板)
- Qt QWidget 软件开发模版
- Matlab中break语句
- 并购支付牌照中金支付90.01%股权该注意哪些风险
- 宏碁服务器u盘装系统,宏基笔记本用u盘装系统操作流程
- iPadPro看电影之MKV转MP4视频格式教程
热门文章
- 分布式文件系统之MogileFS的使用
- 超实用的JavaScript技巧及最佳实践
- synchronized 异常_Java:synchronized的深度解析
- mysql启动失败2005_数据库2005服务启动不了
- android capitalize,How to capitalize every letter in an Android EditText?
- Java虚拟机(八)——堆
- html瀑布流视频列表,StaggeredGridLayoutManager实现瀑布流视频列表和头部广告位以及分栏Header条...
- oracle open_link,open_links_per_instance 和 open_links 参数说明
- android 之日期选择器,Android GUI 之日期选择器(DatePicker)
- 不重启修改计算机名称,批处理不重启快速修改计算机名