java并发
有心好书
种一棵树最好的时间是十年前,其次是现在
展开
-
java并发包学习系列:概论
并发在海量任务处理时有优势非常的明显,如果是串行的执行海量任务,那时间就是累加的关系,但是如果采用并发设计,就相当于同时执行了多个任务,这样可以大幅提高任务的执行速度。原创 2016-07-13 19:40:25 · 1799 阅读 · 0 评论 -
关于多线程的若干问题点
进程和线程怎么理解,进程线程与JVM? Java 并发编程之美-线程相关的基础知识 https://blog.csdn.net/Dome_/article/details/80028193(超级赞的文章) wait notify、notifyall的通俗理解? wait,notify,notifyAll 是定义在Object类的实例方法,用于控制线程状态。 三个方法都必须在synchronized...原创 2019-01-04 22:19:28 · 336 阅读 · 1 评论 -
java并发包学习系列:重入锁与Condition条件
重入锁 这里介绍一下synchronized、wait、notify方法的替代品(或者说是增强版)-重入锁。重入锁是可以完全替代以上的内容的。并且重入锁的性能是远高于synchronized的,但是jdk6.0开始,jdk对synchronized做了大量的优化,使得两者性能差距不大。 重入锁使用java.util.concurrent.locks.ReentrantLock类来实现。原创 2016-07-13 19:43:37 · 3453 阅读 · 0 评论 -
java并发包学习系列:生产者消费者模式
生产者消费者模式是一个经典的多线程设计模式,它为多线程间的协作提供了良好的解决方案。在生产者消费者模式中,通常有两类线程,即若干个生产者线程和若干个消费者线程。生产者线程足额提交用户请求,消费者线程负责具体处理生产者提交的任务。生产者和消费者之间则通过共享内存缓冲区进行通信。原创 2016-07-13 19:48:10 · 1539 阅读 · 0 评论 -
java并发包学习系列:几个多线程控制工具类
Java的concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。原创 2016-07-13 19:45:26 · 2048 阅读 · 0 评论 -
java并发包学习系列:future模式
future模式是多线程开发中非常常见的一种设计模式,它的核心思想是异步调用。当我们需要调用一个函数方法时,如果这个函数执行很慢,那么我们就要进行等待。但有时候我们可能并不着急着要结果。因此,我们可以让被调用者立即返回,让他在后台慢慢处理这个请求。对于调用者来说,则可以先处理一些其他任务,在真正需要数据的场合再去尝试获得需要的数据。原创 2016-07-13 19:47:36 · 1727 阅读 · 0 评论 -
java并发包学习系列:jdk并发容器
同步容器可以简单地理解为通过synchronized来实现同步的容器,如果有多个线程调用同步容器的方法,它们将会串行执行。 同步容器将它们的状态封装起来,并对每一个公有方法进行同步。主要包括:原创 2016-07-13 19:47:05 · 2625 阅读 · 0 评论 -
java并发包学习系列:线程复用之线程池
频繁使用new Thread来创建线程的方式并不太好。因为每次new Thread新建和销毁对象性能较差,线程缺乏统一管理。好在Java提供了线程池,它能够有效的管理、调度线程,避免过多的资源消耗。优点如下:原创 2016-07-13 19:45:53 · 5249 阅读 · 1 评论 -
java并发包学习系列:fork/join
Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。原创 2016-07-13 19:46:28 · 1455 阅读 · 0 评论 -
java并发包学习系列:读写锁
ReadWriteLock是jdk5中提供的读写分离锁。读写分离锁可以有效的帮助减少锁竞争,以提升性能。用锁分离的机制来提升性能非常容易理解,比如线程A1,A2,A3进行写操作,B1,B2,B3进行读操作,如果使用重入锁或者内部锁,则理论上说所有读之间、读和写之间、写和写之间都是串行操作。当B1进行读取时,B2,B3则需要等待锁的释放。由于读操作并不对数据的完整性造成破坏,这种等待显然是不合理。因此,读写锁就有了发挥原创 2016-07-13 19:44:42 · 1450 阅读 · 0 评论 -
java并发包学习系列:信号量
信号量为多线程协作提供了更为强大的控制方法。广义上说,信号量是对锁的扩展。无论是内部锁synchronized还是重入锁ReentrantLock,一次都只允许一个线程访问一个资源,而信号量却可以指定多个线程,同时访问某一个资源。信号量主要提供了一下构造函数:原创 2016-07-13 19:44:08 · 1153 阅读 · 0 评论 -
JAVA线程池ThreadPoolExecutor与阻塞队列BlockingQueue
占位原创 2016-07-01 11:42:03 · 2777 阅读 · 0 评论 -
java并发包学习系列:synchronized和volatile
关键字synchronized的作用是实现进程间的同步。它的工作是对同步的代码加锁,使得每一次,只能有一个线程进入同步块,从而保证线程间的安全性(即同步块每次应该只有一个线程可以执行)。原创 2016-07-13 19:42:32 · 1109 阅读 · 0 评论 -
java并发包学习系列:java并行基础
进程:这里不讲枯燥的概念,举一个例子:你在windows系统中,看到后缀为.exe的文件,都是一个程序。不过程序是死的,静态的。当你双击这个.exe执行的时候,这个.exe文件的指令就会被加载,那么你就能得到一个有关这个.exe程序的一个进程。进程是活的,或者说是正在被执行的。原创 2016-07-13 19:41:05 · 1991 阅读 · 0 评论 -
线程池原理分析
待完善 问题导向?原创 2019-01-07 19:41:41 · 8917 阅读 · 0 评论