精通多线程(一)-死锁
来源:互联网 发布:jquery ajax post json 编辑:程序博客网 时间:2024/06/11 22:23
/** * Created by gmy on 2017/10/14. */public class SimpleDeadLock { public static final Object lock1=new Object(); public static final Object lock2=new Object(); private int index; public static void main(String[] args) { Thread t1=new Thread1(); Thread t2=new Thread2(); t1.start(); t2.start(); } private static class Thread1 extends Thread{ public void run(){ synchronized (lock1){ System.out.println("线程1获得锁1"); try { Thread.sleep(10); }catch (InterruptedException ignored){ } System.out.println("线程1等待锁2"); synchronized (lock2){ System.out.println("线程1拥有锁1锁2"); } } } } private static class Thread2 extends Thread{ public void run(){ synchronized (lock2){ System.out.println("线程2拥有锁2"); try { Thread.sleep(100); }catch (InterruptedException ignored){ } System.out.println("线程2等待锁1"); synchronized (lock1){ System.out.println("线程2拥有锁1锁2"); } } } }}
解析:
- 当一个线程拥有锁1并想获得锁2,而另一个线程拥有锁2并想获得锁1时便产生死锁.
- 谁拿到这个锁谁就可以运行它所控制的那段代码
- 一个线程访问一个对象中的synchronized(this)同步代码块时,其他试图访问该对象的线程将被阻塞
阅读全文
0 0
- 精通多线程(一)-死锁
- 多线程死锁
- 多线程 - 死锁
- 多线程死锁
- 多线程死锁
- 多线程 死锁
- 多线程死锁
- 多线程死锁
- 多线程--死锁
- 多线程死锁
- 多线程死锁
- 多线程-死锁
- 多线程死锁
- 多线程死锁
- 多线程(多线程-死锁)
- 【Java多线程】多线程死锁
- 多线程WIN32程序如何检查死锁(一)——死锁概述
- 【多线程】多线程死锁及解决方法
- 三种滑门技术
- C#的几个知识点
- 你可能不知道的 5 个强大的 HTML5 API
- css 布局 两列布局与三列布局
- 浅析redux-saga实现原理
- 精通多线程(一)-死锁
- 初赛中の一些知识点
- JZOJ5405. 【NOIP2017提高A组模拟10.10】Permutation
- Nginx + CGI/FastCGI + C/Cpp
- Hello World
- MDK在链接时提示空间不够(No space in execution regions with .ANY selector... )解决方案
- Laravel-学习笔记-多用户表登陆分析与实现(Authentication)
- oracle中执行execute的时候报异常ORA-01031的解决办法
- Java写的众数问题