`

JAVA多线程死锁程序Demo

    博客分类:
  • JAVA
阅读更多
package thread;

/**
 * JAVA多线程 死锁程序
 * @author hero
 *
 */

class TestLock implements Runnable {
	
	private boolean flag;
	TestLock(boolean flag){
		this.flag = flag;
	}
	public void run() {
		
		if(flag){
			while(true){
				synchronized (MyLock.locka) {
					//进入拿到A锁--等待B锁
					System.out.println("if locka");
					synchronized (MyLock.lockb) {
						System.out.println("if lockb");
					}
				}
			}
		}else{
			while(true){
				synchronized (MyLock.lockb) {
					//进入 拿到B锁--等待A锁
					System.out.println("else lockb");
					synchronized (MyLock.locka) {
						System.out.println("else locka");
					}
				}
			}
		}
	}
}
class MyLock{//锁类
	static Object locka = new Object();
	static Object lockb = new Object();
}

public class DeadLockTest8 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Thread t1 = new Thread(new TestLock(true));//拿A锁--等B锁
		Thread t2 = new Thread(new TestLock(false));//拿B锁--等A锁
		
		t1.start();
		t2.start();
	}

}
分享到:
评论

相关推荐

    java多线程代码demo

    本示例代码集合("java多线程代码demo")涵盖了多线程的多种实现方式,包括Thread类和Runnable接口的使用,以及对死锁的理解与避免。通过以下详细解释,你可以深入了解Java多线程的原理和实践。 1. **Thread类**:...

    JAVA多线程基础演练DEMO

    这个"JAVA多线程基础演练DEMO"提供了一些基础示例,帮助开发者更好地理解和掌握多线程的基本概念和用法。以下将详细讲解Java多线程的相关知识点: 1. **线程的创建** - **继承Thread类**:创建一个新类,继承自`...

    多线程demo/java多线程练习

    本项目"多线程demo/java多线程练习"旨在通过实际操作来深入理解和掌握多线程技术,同时模拟数据库操作,这在现代应用程序开发中至关重要。 1. **线程基础** - **创建线程**:Java提供了两种创建线程的方式,分别是...

    java多线程练习demo 基本的线程使用方式 生产者消费者练习 龟兔赛跑练习.zip

    总结来说,"java多线程练习demo" 提供了一个学习和实践Java多线程的平台,通过“生产者消费者”和“龟兔赛跑”等例子,我们可以深入理解Java多线程编程的基本原理和实践技巧。这些知识对于开发高并发、高性能的Java...

    多线程的通用Demo

    在IT领域,多线程是程序设计中的一个重要概念,尤其在服务器端开发和高并发场景中,多线程技术能够显著提升系统性能。本示例"多线程的通用Demo"着重展示了如何在实际应用中利用多线程进行加密、解密以及数据包发送的...

    异步多线程Demo

    在IT领域,多线程是程序设计中的一个重要概念,尤其在高性能和响应迅速的应用中,如服务器端编程、游戏开发和大规模数据处理等。多线程允许程序同时执行多个独立的任务,提高系统的并发性和资源利用率。这个“异步多...

    java多线程、锁的教程跟案例

    Java多线程与锁是Java并发编程中的核心概念,它们对于构建高效、可扩展的并发应用程序至关重要。在Java中,多线程允许程序同时执行多个任务,提高CPU的利用率,而锁则是用来控制多线程间共享资源的访问,确保数据的...

    多线程,runtime测试demo

    通过运行这个测试Demo,开发者可以深入理解多线程编程中的挑战和解决方案,以及如何有效利用Runtime来操控Java应用程序的运行环境。记得打开注释并亲自运行,理论结合实践才能真正掌握这些知识。

    高并发多线程处理demo-java.rar

    1. **Java多线程**:Java通过`Thread`类和`Runnable`接口支持多线程编程。在这个示例中,可能会创建多个线程对象,每个对象负责处理队列中的一个任务,以实现并行执行。 2. **并发队列**:并发队列如`...

    简单的java线程demo

    Java线程是多任务编程的重要概念,特别是在大型的、复杂的软件系统中,它允许程序同时执行多个不同的任务,提升程序的并发性和效率。本示例"简单的Java线程demo"旨在帮助初学者理解如何在Java中创建和管理线程。 在...

    性能之多线程-演示Demo

    在分析和调试多线程程序时,工具如Java的`jstack`命令、Python的`threading`模块的`enumerate()`和`active_count()`方法也是必不可少的。 综上所述,“性能之多线程-演示Demo”这个主题涵盖了多线程的基础概念、...

    多线程并发的demo

    在IT领域,多线程并发是提升程序性能和效率的重要...总之,多线程并发是Java编程中的重要主题,它不仅关乎程序性能,也直接影响到系统稳定性和可靠性。通过合理的线程设计和管理,我们可以构建出高效、健壮的Web应用。

    多线程Demo

    本文将深入探讨“多线程Demo”所涉及的知识点,帮助你理解和掌握多线程的基本概念、实现方式以及常见应用场景。 一、多线程基础 1. **线程定义**:线程是操作系统分配CPU时间的基本单位,一个进程可以包含多个线程...

    hhg多线程编程2Demo

    在IT行业中,多线程编程是一项关键技能,...通过这个Demo,开发者可以学习到如何在实际项目中应用多线程和同步锁,以提高程序的并发性能和正确性。同时,理解并熟练掌握这些概念对于构建大规模、高并发的系统至关重要。

    Java多线程的用法详解

    Java多线程是编程中一个重要的概念,特别是在开发高并发、高性能的应用程序时不可或缺。本文将详细解析Java中实现多线程的两种主要方式以及线程的生命周期。 1. 创建线程 在Java中,创建线程主要有两种方法: **...

    java_thread_demo

    总的来说,"java_thread_demo"应该涵盖了如何创建和管理Java线程,以及如何在多线程环境中进行有效的同步和通信。通过学习和实践这个示例,开发者可以深入理解Java线程编程的核心概念和最佳实践。

    自学多线程demo代码

    在IT领域,多线程是程序设计中的一个重要概念,尤其在现代计算机系统中,多核处理器的普及使得多线程编程成为了提升系统性能的关键技术。本资源“自学多线程demo代码”旨在帮助学习者理解和实践多线程编程,通过实际...

    多线程实现消息收发的Demo

    在Java或C#等编程语言中,多线程可以提高应用程序的响应速度和效率,特别是在需要处理I/O密集型或计算密集型任务时。例如,在消息收发的场景中,创建一个线程专门负责接收消息,另一个线程则负责发送消息,这样可以...

    java线程demo

    理解并熟练掌握线程同步、互斥和死锁的处理方法,能帮助我们编写出高效、安全的多线程程序,从而提升软件的性能和稳定性。在这个“java线程demo”中,你可以找到实用的示例和代码片段,进一步加深对这些概念的理解。

Global site tag (gtag.js) - Google Analytics