![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发编程学习
文章平均质量分 73
shike_sk
这个作者很懒,什么都没留下…
展开
-
Java并发编程:ThreadPoolExecutor类及方法源码分析
ThreadPoolExecutor是jdk自带线程池实现类,现有的Executors工具类实现的几种线程池核心都是调用ThreadPoolExecutor类。ThreadPoolExecutor在jdk1.7及以后做了部分修改,本文以JDK1.8为准。1 构造函数ThreadPoolExecutor类共有4个构造函数,其他三个构造函数都是调用下参数最全的一个,下面只介绍参数最全的的一个。 publ原创 2016-01-14 21:35:30 · 647 阅读 · 0 评论 -
Java并发编程:生产者-消费者模式
生产者消费者模型是并发编程的经典模型,生产者模型的核心思想是生产者生产的产品通过一块共享的资源与消费者交互,通过共享资源的交互实现了生产者与消费者的解耦。现在的消息队列使用的也是这种思想。 本文实现了如下描述的生产者-消费者模型: 1、生产者和消费者各有1个; 2、通信所使用的队列大小一定(200),并且队列不能溢出; 3、生产者和我消费者的消费速度不做假设,生产速度和消费速原创 2016-01-22 11:41:02 · 1909 阅读 · 0 评论 -
Java并发编程:阻塞队列及实现生产者-消费者模式
1 什么是阻塞队列 JDK 1.5的java.util.concurrent包提供了多种阻塞队列。阻塞队列相对于PriorityQueue、LinkedList等非阻塞队列的特点是提供了,队列阻塞的操作,优化了队列为空向队列取数据或者队列满向队列加数据时的阻塞操作。以生产者-消费者模式为例,当队列为空时消费者线程会被挂起,等到队列中有数据时会自动的恢复并消费。1.1 常见的阻塞队列 Blocki原创 2016-01-24 14:38:33 · 1684 阅读 · 0 评论 -
Java并发编程:并发基础概念
Java并发编程(一) 并发编程可以使我们的程序执行速度得到提高,多进程和多线程是常见的并发技术。 1、多进程 2、多线程 3、Java并发编程采用的方法1、多进程 多进程是实现并发技术最直接的方法,它是操作系统级别的,操作系统周期性的快速的将CPU在给各个进程间切换,达到并发的目的。多进程的特点是每个进程都有自己的系统资源、地址空间等,进程之间的运行不会相互影响。进程和程序的区别就是进原创 2016-01-06 15:31:41 · 447 阅读 · 0 评论 -
Java并发编程:线程创建
Java中创建线程最常用的方法有继承Thread类和实现Runnable两种。Thread类实际也是实现了Runnable方法,由于无法继承多个父类但是可以继承多个接口,所有创建进程大多是实现Runnable接口 继承Thread类 创建线程示例 Thread类源码分析 实现Runnable接口 创建线程示例 Runnab原创 2016-01-07 23:10:33 · 760 阅读 · 0 评论 -
Java并发编程:死锁及解决方法
1 什么是死锁 死锁是多个进程\线程为了完成任务申请多个不可剥夺的资源并且以不正确的方式推进导致的一直互相等待对方释放资源的状态。下面以经典的哲学家就餐问题为例,描述死锁产生的场景。2 哲学家就餐问题 五个哲学家坐在一个圆桌上,每个哲学家两侧都放着1根筷子,总共有5只筷子。哲学家需要分别或者左右手的两只筷子才能就餐,就餐完成后将筷子放回原处,其他哲学家可以获取放回的筷子。有这样一种状态,每个哲学原创 2016-01-26 21:44:41 · 1302 阅读 · 0 评论 -
Java并发编程:线程池创建及源码分析
Java5引入了线程池的顶级接口Executor,ExecutorService继承了Executor接口并增加了自己的方法。Executors工具类为Executor,ExecutorService,ScheduledExecutorService,ThreadFactory和Callable类提供了一些工具方法,通过这个工具类提供的方法可以方便的创建线程池。1 使用线程池的好处 使用线程池的好原创 2016-01-12 15:39:52 · 722 阅读 · 0 评论 -
Java并发编程:线程同步机制
Java中线程同步可以通过wait、notify、notifyAll等方法实现。这几个方法在最顶级的父类Object中实现,并且被声明为final,所以子类无法重写这几个方法。在实现线程同步时,一般需要配合synchronized关键字使用,定义同步代码块或者方法。JDK 1.5以后提供了Condition来实现线程间的协作,Condition提供的await、signal、signalAll方法相原创 2016-01-19 18:31:17 · 1218 阅读 · 0 评论 -
Java集合: ConcurrentHashMap源码分析 JDK1.8
转载文章,原博客地址为:http://blog.csdn.net/u010887744/article/details/50637030jdk1.8和jdk1.7对于ConcurrentHashMap的实现出现的重大变化,不再采用分段锁的方法,网上这方面的博客较少,这篇文章写得较好,转载扩撒。本文首写于有道云笔记,并在小组分享会分享,先整理发布,希望和大家交流探讨。云笔转载 2016-03-10 16:21:54 · 4554 阅读 · 0 评论