java并发编程
weixin_38437243
这个作者很懒,什么都没留下…
展开
-
java并发编程初探:什么是并发编程?
并发编程:也叫多线程编程,相对于单线程而言,是指jvm虚拟机并发的运行多个线程。学过《操作系统》的人都知道,处理机具有高速的处理能力,而计算机中操作系统的发展也是从单用户单任务发展到现在的多用户多任务,这也是计算机发展史上的一次飞跃。但若没有处理机的并发处理,现在的计算机根本不可能发展的这么迅速。通过一个流程图我们来看看多线程怎么执行的?根据冯诺依曼计算机的理论,程序是顺序执行的,但是,多线程是每...原创 2018-03-16 16:31:05 · 406 阅读 · 0 评论 -
java并发编程:如何实现生产者消费者模式?
package concurrent;import java.util.LinkedList;import java.util.Queue;public class ProducerConsumer { public static class Storage{ private static final int MAX_ITEM = 5; private Queu...原创 2018-03-18 11:05:50 · 332 阅读 · 0 评论 -
java并发编程:wait()和sleep的区别
首先,多线程中会使用到两个延迟的函数,wait和sleep。wait是Object类中的方法,而sleep是Thread类中的方法。sleep是Thread类中的静态方法。无论是在a线程中调用b的sleep方法,还是b线程中调用a的sleep方法,谁调用,谁睡觉。最主要的是sleep方法调用之后,并【没有释放锁】。使得线程仍然可以同步控制。sleep不会让出系统资源;而wait是进入线程等待池中等...转载 2018-03-18 14:59:08 · 628 阅读 · 0 评论 -
java并发编程-再谈daemon线程
守护线程:顾名思义是用来做“守护神”的工作,一直守护着用户线程直到用户线程工作完毕(比如:main线程结束)。对于守护线程我们需要注意两点:通过调用setDaemon(true)方法将线程设置为Daemon线程,但必须在线程启动之前设置;Daemon线程终止时,该线程中的finally块不一定被执行;当Java虚拟机中不存在非Daemon线程的时候,虚拟机将会退出。看一个例子,模拟日志记录功能,写...原创 2018-03-25 14:47:02 · 197 阅读 · 0 评论 -
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下...转载 2018-04-02 15:11:08 · 196 阅读 · 0 评论 -
java并发编程:等待/通知机制
对等待/通知机制做个总结: 一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个过程开始于一个线程,而最终执行又是另一个线程。前者是生产者,后者就是消费者,这种模式隔离了“做什么(what)”和“怎么做(how)",在功能层面上实现了解耦,体系结构上具备了良好的伸缩性,但是在java语言中如何实现类似的功能那? 简单的方法是让消费者线程不断地循环检查变量是否符...转载 2018-04-02 17:24:11 · 559 阅读 · 0 评论