并发编程高级篇一----JDK多任务执行框架,Concurrent.util工具类以及锁的高级深化

2017-09-25
阅读 6 分钟
2.2k
1.Jdk的多任务执行框架 JDK提供了一套线程框架Executor来帮助开发者有效的进行线程控制,Executors扮演线程工厂的角色,其创建线程的方法如下 newFixedThreadPool() 返回固定数量的线程池,该方法的线程数始终不变。若线程空闲则立即执行 否则暂缓到队列中 newSingleThreadPool() 创建一个线程池,若线程空闲则立即执行 ...

并发编程中级篇三----并行设计模式----生产者-消费者模式

2017-09-16
阅读 4 分钟
4k
生产者-消费者模式是一个经典的多线程设计模式,它为多线程的协作提供了良好的解决方案。在生产者-消费者模式中,通常有两类线程,即若干个生产者线程和若干个消费者线程。生产者线程负责提交用户请求,消费者线程负责处理用户请求。生产者和消费者之间通过共享内存缓冲区进行通信。

并发编程中级篇二----并行设计模式----Future模式

2017-09-12
阅读 3 分钟
3.2k
Future模式类似于用户提交商品订单,下单成功以后后台异步的执行耗时的业务在java.util.concurrent包中.Future接口是Java线程Future模式的实现,可以来进行异步计算。

并发编程中级篇一

2017-09-10
阅读 2 分钟
2.2k
同步类容器包括 Vector HashTable 。这些容器的同步方法都是使用JDK的 Collections.synchronizedCollection,synchronizedMap,synchronizedList等工厂方法去创建实现的。其底层的机制就是对于使用synchronized关键字对于每一个公用的方法进行同步。

并发编程基础知识二

2017-09-09
阅读 5 分钟
1.6k
volatile关键字的作用是变量在多个线程之间可见volatile的作用是强制线程到主内存(共享内存)里读取变量,而不是线程工作内存区里去读取变量,从而实现了多个线程之间的变量可见,也就是满足线程安全的可见性。

并发编程基础知识一

2017-09-07
阅读 7 分钟
1.6k
当多个线程访问Thread的run()方法时,以排队的形式进行处理(排队是按照CPU分配的先后顺序而定的),一个线程要执行synchronized 修饰的方法里面的代码1.尝试获得锁2.如果拿到锁 执行synchronized 代码块内容 。如果拿不到锁 这个线程就会不断的尝试获得这把锁,直到拿到为止。而且多个线程同时去竞争这把锁,也就是会有...