07 2018 档案

摘要:一.线程中断 Java 中线程中断是一种线程间协作模式,通过设置线程的中断标志并不能直接终止该线程的执行,而是需要被中断的线程根据中断状态自行处理。 1.void interrupt() 方法:中断线程,例如当线程 A 运行时,线程 B 可以调用线程 A 的 interrupt() 方法来设置线程 阅读全文
posted @ 2018-07-17 23:25 国见比吕 阅读(869) 评论(0) 推荐(0) 编辑
摘要:一.线程概念 说到线程就必须要提一下进程,因为线程是进程中的一个实体,线程本身是不会独立存在的。进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,线程则是进程的一个执行路径,一个进程至少有一个线程,进程中的多个线程是共享进程的资源的。操作系统在分配资源时候是把资源分配给进程的 阅读全文
posted @ 2018-07-17 15:44 国见比吕 阅读(1448) 评论(0) 推荐(0) 编辑
摘要:使用 ThreadLocal 不当可能会导致内存泄露,是什么原因导致的内存泄漏呢? 我们首先看一个例子,代码如下: 代码(1)创建了一个核心线程数和最大线程数为 6 的线程池,这个保证了线程池里面随时都有 6 个线程在运行。 代码(2)创建了一个 ThreadLocal 的变量,泛型参数为 Loca 阅读全文
posted @ 2018-07-14 23:21 国见比吕 阅读(3057) 评论(3) 推荐(0) 编辑
摘要:FutureTask可用于异步获取执行结果或取消执行任务的场景。通过传入Runnable或者Callable的任务给FutureTask,直接调用其run方法或者放入线程池执行,之后可以在外部通过FutureTask的get方法异步获取执行结果,因此,FutureTask非常适合用于耗时的计算,主线 阅读全文
posted @ 2018-07-13 17:32 国见比吕 阅读(1162) 评论(0) 推荐(0) 编辑
摘要:SimpleDateFormat 是 Java 提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个 SimpleDateFormat 实例对日期进行解析或者格式化会导致程序出错,本节就讨论下它为何是线程不安全的,以及如何避免。 为了复现上面所说的不 阅读全文
posted @ 2018-07-12 16:14 国见比吕 阅读(1831) 评论(5) 推荐(3) 编辑
摘要:timer在JDK里面,是很早的一个API了。具有延时的,并具有周期性的任务,在newScheduledThreadPool出来之前我们一般会用Timer和TimerTask来做,但是Timer存在一些缺陷,为什么这么说呢? Timer只创建唯一的线程来执行所有Timer任务。如果一个timer任务 阅读全文
posted @ 2018-07-12 01:47 国见比吕 阅读(1294) 评论(0) 推荐(1) 编辑
摘要:JUC 中 Semaphore 的使用与原理分析,Semaphore 也是 Java 中的一个同步器,与 CountDownLatch 和 CycleBarrier 不同在于它内部的计数器是递增的,那么,Semaphore 的内部实现是怎样的呢? Semaphore 信号量也是Java 中一个同步容 阅读全文
posted @ 2018-07-08 17:23 国见比吕 阅读(994) 评论(0) 推荐(1) 编辑
摘要:JUC 中 回环屏障 CyclicBarrier 的使用与分析,它也可以实现像 CountDownLatch 一样让一组线程全部到达一个状态后再全部同时执行,但是 CyclicBarrier 可以被复用。那么 CyclicBarrier 内部的实现与 CountDownLatch 有何不同那? Co 阅读全文
posted @ 2018-07-07 22:10 国见比吕 阅读(607) 评论(0) 推荐(0) 编辑
摘要:JUC 中倒数计数器 CountDownLatch 的使用与原理分析,当需要等待多个线程执行完毕后在做一件事情时候 CountDownLatch 是比调用线程的 join 方法更好的选择,CountDownLatch 与 线程的 join 方法区别是什么? 日常开发中经常会遇到需要在主线程中开启多线 阅读全文
posted @ 2018-07-06 21:33 国见比吕 阅读(2120) 评论(3) 推荐(1) 编辑

点击右上角即可分享
微信分享提示