摘要: ThreadLocal,很多人都叫它做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。 可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那样每个线程可以访问自己内部的副本变量。 这句话从表面上看起来理解正确,但实际上这种理解是不太正确的。下面我们细细道来。 多线 阅读全文
posted @ 2017-04-25 17:16 张俊鸿 阅读(4347) 评论(2) 推荐(1) 编辑
摘要: 我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而 阅读全文
posted @ 2017-04-25 12:13 张俊鸿 阅读(1216) 评论(1) 推荐(0) 编辑
摘要: 1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。 这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。 当队列满时,存储元素的线程会等待队列可用。 阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的 阅读全文
posted @ 2017-04-25 00:22 张俊鸿 阅读(390) 评论(1) 推荐(0) 编辑