Thinking in Java(Fourth Edition)学习笔记--并发(concurrency)-21.4终结任务

1.线程四种状态:新建,就绪,阻塞,死亡.其中,就绪状态,只要调度片把时间片分配给线程,线程就可以运行.也就是说,在任意时刻,线程可以运行也可以不运行.这不同于死亡和阻塞状态.

2.使用Executor.submit()而不是executor()来启动任务,,就可以获得任务的上下文,submit()将返回Future,可以调用Future.cancel(true)来中断任务(P695-696)

    Future<?> f = exec.submit(r);
               f.cancel(true); // Interrupts if running

3.无法中断下正在试图获取synchronized或者试图执行I/O操作的线程,一个笨拙但是有效的方法在关闭任务在其上发生阻塞的底层资源(如InputStream.close();).

4.18章各种NIO提供了更人性化的I/O中断.被阻塞的NIO通道会自动地响应中断.

5.synchronized方法不可被中断,但是ReentrantLock上阻塞的任务具备可以被中断的能力.

6.Thread.interrupt可以用来检查中断.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值