java定时器引起死锁_多线程之 死锁与定时器

多线程之 死锁与定时器

一. 死锁

死锁:同步代码时,因为获取锁问题,导致程序无限等待。

线程A等待线程B释放 1锁

线程B等待线程A释放 2锁

线程A和线程B都等对方释放,没人释放,就会陷入无限等待。 死锁

死锁形成条件:

嵌套同步代码块

两个同步代码块,锁对象不相同

解决死锁:

不要嵌套同步代码块

活用  锁对象.wait()

二. 定时器

定时执行某个任务:延迟一段时间执行某个任务

立刻执行某个任务

public static void main(String[] args) throws InterruptedException {

//1、创建一个定时器

Timer timer = new Timer();

//2、绑定一个任务

//TimerTask 定时器任务

//参数二:延迟多少毫秒执行 1000

//参数三:执行周期 每隔X毫秒值就执行一次

timer.schedule(new TimerTask() {

//任务

@Override

public void run() {

System.out.println("这是我的定时器");

}

},1000,2000);

Thread.sleep(5000);

timer.cancel();//取消某个正在运行的定时器

}

public static void main(String[] args) throws InterruptedException {

Timer timer = new Timer();

timer.schedule(new TimerTask() {

@Override

public void run() {

System.out.println(new Date().toLocaleString());

}

},0,1000);

Thread.sleep(10000);

timer.cancel();

}

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值