Python 官方文档:入门教程 => 点击学习
public class jstackDemo { public static void main(String[] args) { Thread t1
public class jstackDemo {
public static void main(String[] args) {
Thread t1 = new Thread(new DeadLockclass(true));//建立一个线程
Thread t2 = new Thread(new DeadLockclass(false));//建立另一个线程
t1.start();//启动一个线程
t2.start();//启动另一个线程
}
}
class DeadLockclass implements Runnable {
public boolean falg;// 控制线程
DeadLockclass(boolean falg) {
this.falg = falg;
}
public void run() {
if (falg) {
while (true) {
synchronized (Suo.o1) {
System.out.println("o1 " + Thread.currentThread().getName());
synchronized (Suo.o2) {
System.out.println("o2 " + Thread.currentThread().getName());
}
}
}
}
else {
while (true) {
synchronized (Suo.o2) {
System.out.println("o2 " + Thread.currentThread().getName());
synchronized (Suo.o1) {
System.out.println("o1 " + Thread.currentThread().getName());
}
}
}
}
}
}
class Suo {
static Object o1 = new Object();
static Object o2 = new Object();
}
import org.springframework.stereotype.Component;
@Component
public class SynchronizedTest {
private static final Object lockA = new Object();
private static final Object lockB = new Object();
private static class ThreadA extends java.lang.Thread {
@Override
public void run() {
// 获取临界区A
synchronized (lockA) {
System.out.println("get lockA success");
// 模拟耗时操作
try {
Thread.currentThread().setName("线程A");
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 获取临界区B
synchronized (lockB) {
System.out.println("get lockB success");
}
}
}
}
private static class ThreadB extends java.lang.Thread {
@Override
public void run() {
// 获取临界区A
synchronized (lockB) {
System.out.println("get lockB success");
// 模拟耗时操作
try {
Thread.currentThread().setName("线程B");
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 获取临界区B
synchronized (lockA) {
System.out.println("get lockA success");
}
}
}
}
static {
new ThreadA().start();
new ThreadB().start();
}
}
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!
--结束END--
本文标题: Java线程死锁代码详解
本文链接: https://www.lsjlt.com/news/156507.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0