%;&4:用于没有返回结果的任务
%;?用于有返回结果的任务
=?,=?? 需要通过 =?, 来执行
任务分割出的子任务会添加到当前工作线程所维护的双端队列中,进
入队列的头部。当一个工作线程的队列里暂时没有任务时,它会随机从其他工
作线程的队列的尾部获取一个任务工作窃取算法。
=?) 框架的实现原理
=?, 由 =?? 数组和 =?$? 数组组成,
=?? 数 组 负 责 将 存 放 程 序 提 交 给 =?, , 而
=?$? 负责执行这
20、原子操作类
在 6;4,;44 包下,可以分为四种类型的原子更新类:
原子更新基本类型、原子更新数组类型、原子更新引用和原子更新属性。
原子更新基本类型
使用原子方式更新基本类型,共包括 个类:
&4',:原子更新布尔变量
&449:原子更新整型变量
&4(9:原子更新长整型变量
原子更新数组
通过原子更新数组里的某个元素,共有 个类:
&449&/:原子更新整型数组的某个元素
&4(9&/:原子更新长整型数组的某个元素
&4%5&/:原子更新引用类型数组的某个元素
&449&/ 常用的方法有:
4&+444,4:以原子方式将输入值与数组中索引为 的元
素相加
,-&+444<-44;-4:如果当前值等于
预期值,则以原子方式更新数组中索引为 的值为 ;-4 值
原子更新引用类型
&4%5:原子更新引用类型
&4%5=,-4:原子更新引用类型里的字段
&4!?,%5:原子更新带有标记位的引用类型。
1原子更新字段类
如果需要原子更新某个类的某个字段,就需要用到原子更新字段类,可以使用
以下几个类:
&449=,-4:原子更新整型字段
&4(9=,-4:原子更新长整型字段
&4+4-%5:原子更新带有版本号的引用类型。
要想原子更新字段,需要两个步骤:
每次必须使用 3-4 创建一个更新器,并且需要设置想要更新的类的字
段
更新类的字段(属性)必须为 -;,,4,
21、同步屏障 CyclicBarrier