
JAVA 多线程
文章平均质量分 63
changzhiqiang_
一个单身的程序员,渴望代码无bug
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JAVA线程并发性之CAS算法,模拟实现代码
在了解算法之前,我们先对回顾基本概念:原子性:具有不可分割性。比如 a=0;(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a + 1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题。volatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见,使得对临界区资源的修改可以马上被其他原创 2017-07-04 12:43:24 · 750 阅读 · 1 评论 -
synchronized 和 lock 基本使用以及死锁分析
1.未加锁多线程程序未加锁可能产生安全问题线程未加锁可能造成数据重复访问如下程序 public class SellTickets implements Runnable{ private int ticketNumber = 100; @Override public void run() { while(true){ if(tic原创 2017-06-07 00:39:54 · 1474 阅读 · 0 评论 -
ForkJoinPool分支合并框架 核心思想->代码演示
线程池架构Fork-Join 框架就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。工作窃取 模式(work-stealing)当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到线程队列中,当该线程队列没有需要执行的任务时,再从一个随机线程的队列中偷一个并把它放在自己的队列中。相对于一般的线程池实现原创 2017-07-05 20:16:07 · 957 阅读 · 0 评论