引:1946年 第一台计算机 ENIAC 诞生,一个时间段只能执行一个任务。 Q:为什么同时一时间只能执行一个任务呀,任务在执行IO操作的时候,CUP完全可以做其它事情嘛。 A:那个搞个进程吧,每个任务一个进程,这个就可以一个进程做IO时,一个进程用cup。 Q:这样好是好,但是有的时候一个任务里有 ...
分类:
编程语言 时间:
2019-01-25 17:43:49
阅读次数:
171
用法:ThreadLocal用于保存某个线程共享变量:对于同一个static ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量。 ThreadLocal.get: 获取ThreadLocal中当前线程共享变量的值。 ThreadLocal.se ...
分类:
编程语言 时间:
2019-01-24 13:26:37
阅读次数:
183
CyclicBarrier概念:CyclicBarrier是多线程中的一个同步工具,它允许一组线程互相等待,直到到达某个公共屏障点。形象点儿说,CyclicBarrier就是一个屏障,要求这一组线程中的每一个线程都要等待其他的线程执行完成,即这一组线程全部来到屏障前(全部执行完成),屏障才会打开,放 ...
分类:
编程语言 时间:
2019-01-20 18:01:39
阅读次数:
160
文章转自:https://blog.csdn.net/weibin_6388/article/details/50750035 这篇文章主要讲多线程对静态方法访问的数据安全性 总结如下: 1,java在执行静态方法时,会在内存中拷贝一份,如果静态方法所在的类里面没有静态的变量,那么线程访问就是安全的 ...
分类:
编程语言 时间:
2019-01-20 15:10:42
阅读次数:
223
ReentrantLock是重入锁,它与synchronized很像,它是synchronized的加强版,因为它具有一些synchronized没有的功能。下面我们看看两者的区别:synchronized具有一定的局限性: 当线程尝试获取锁的时候,如果获取不到锁会一直阻塞; 如果获取锁的线程进入休 ...
分类:
编程语言 时间:
2019-01-19 18:47:13
阅读次数:
227
先提一下进程,可以理解为操作系统管理的基本单元。 而线程呢,在进程中独立运行的子任务。举个栗子:QQ.exe运行时有很多子任务在同时运行,比如好友视频线程、下载视频线程、传输数据线程等等。 多线程的优势? 在单任务运行环境中,需要排队执行,也就是我们所说的同步,CPU利用率大幅降低。 多任务运行环境 ...
分类:
编程语言 时间:
2019-01-17 22:34:38
阅读次数:
193
生产者消费者模型 具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。生产消费者模式如下图。(图片来自网络,侵删!) 生产者消费者模型的实现 生产者是一堆线程,消费者是另一堆线程,内存缓冲区可以使用List数组队列,数 ...
分类:
编程语言 时间:
2019-01-17 20:13:45
阅读次数:
173
关于这三个方法,我们可以查询API得到下列解释: wait():导致当前的线程等待,直到其他线程调用此对象的notify( ) 方法或 notifyAll( ) 方法或者指定的事件用完 notify():唤醒在此对象监视器上等待的单个线程 notifyAll():唤醒在此对象监视器上等待的所有线程 ...
分类:
编程语言 时间:
2019-01-17 20:13:28
阅读次数:
228
1.什么是阻塞队列 我们知道,PriorityQueue、LinkedList这些都是非阻塞队列。在我们使用非阻塞队列的时候有一个很大问题,它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策略,这个实现起来就非常麻烦。但是有了阻塞队列就不一样了, ...
分类:
编程语言 时间:
2019-01-17 20:03:08
阅读次数:
170
Kindle在路上,三大杯的大创项目在描时间轴。Flag,该立起来了。 从实验室学长处挖来了一张X-mind(? ?_?)? 第一本,《Java多线程核心编程技术》,好,入坑! ...
分类:
其他好文 时间:
2019-01-17 14:00:35
阅读次数:
159