章节:2. 2. 18 内容:同步synchronized方法无限等待问题与解决方案

本文探讨了在Java中使用synchronized方法时可能出现的无限等待死锁问题,并提供了具体的示例代码(Service.java, ThreadA.java, ThreadB.java, Run.java)来展示问题。通过分析测试结果,文章提出了改造Service.java的解决方案,确保了线程间的调用不再相互影响,避免了死锁状况。" 102908626,8545706,反事实学习在推荐系统中的应用:提升CTR预估准确性,"['推荐系统', '机器学习', '数据挖掘', '算法', '反事实推理']
摘要由CSDN通过智能技术生成

Java多线程编程核心技术(第二版),2. 2. 18,学习笔记

内容:同步synchronized方法无限等待问题与解决方案

死锁demo:

Service.java

public class Service {

	synchronized public void methodA() {
		System.out.println(" methodA begin");
		boolean isContinueRun = true;
		while (isContinueRun) {
		}
		System.out.println(" methodA end");
	}

	synchronized public void methodB() {
		System.out.println(" methodB begin");
		System.out.println(" methodB end");
	}

}

ThreadA.java

public class ThreadA extends Thread{

	private Service service;
	
	public ThreadA(Service service) {
		super();
		this.service = service;
	}

	@Override
	public void run() {
		super.run();
		service.methodA();
	}
	
}

ThreadB.java

public class ThreadB extends Thread{

	private Servi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值