摘要: 四、中断 一个线程执行完毕之后会自动结束,如果在运行过程中发生异常也会提前结束。 InterruptedException 通过调用一个线程的 interrupt() 来中断该线程,如果该线程处于阻塞、限期等待或者无限期等待状态,那么就会抛出 InterruptedException,从而提前结束该 阅读全文
posted @ 2018-10-30 11:44 青春暮年 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 三、基础线程机制 Executor Executor 管理多个异步任务的执行,而无需程序员显式地管理线程的生命周期。这里的异步是指多个任务的执行互不干扰,不需要进行同步操作。 主要有 6种 Executor: newCachedThreadPool:创建可缓存的线程池,如果线程池中的线程在60秒未被 阅读全文
posted @ 2018-10-30 11:31 青春暮年 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 深入理解线程通信 前言 开发中不免会遇到需要所有子线程执行完毕通知主线程处理某些逻辑的场景。 或者是线程 A 在执行到某个条件通知线程 B 执行某个操作。 可以通过以下几种方式实现: 等待通知机制 等待通知模式是 Java 中比较经典的线程通信方式。 两个线程通过对同一对象调用等待 wait() 和 阅读全文
posted @ 2018-10-30 10:39 青春暮年 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 一、线程状态转换 新建(New) 创建后尚未启动。 可运行(Runnable) 可能正在运行,也可能正在等待 CPU 时间片。 包含了操作系统线程状态中的 Running 和 Ready。 阻塞(Blocking) 等待获取一个排它锁,如果其线程释放了锁就会结束此状态。 无限期等待(Waiting) 阅读全文
posted @ 2018-10-30 10:27 青春暮年 阅读(182) 评论(0) 推荐(0) 编辑