原则:
1.原子性:要保证操作是原子的,线程安全的,java的atomatic包里的AtomicInteger符合这种要求
2.正数性:数字在java中是用补码进行表示的,第一位为符号位,0代表正数,1代表负数,可以对递增的数值进行与0x7FFFFFFF(int类型,4个字节)操作,保证永远为正数。当递增超过0x7FFFFFFF时,又会从0开始递增
附metaq中的实现,这个主要用在轮询的分区选择器上RoundRobinPartitionSelector,用于均匀的选择分区
/**
* 正数的原子递增器,主要用于实现轮询
*
* @author apple
*
*/
public class PositiveAtomicCounter {
private final AtomicInteger atom;
private static final int mask = 0x7FFFFFFF;
public PositiveAtomicCounter() {
atom = new AtomicInteger(0);
}
public final int incrementAndGet() {
final int rt = atom.incrementAndGet();
return rt & mask;
}
public int intValue() {
return atom.intValue();
}
}
分享到:
相关推荐
一个正数计时器,可以计时然后提示你用时。转载的
将正数转换成负数,负数转换成正数, int main(int argc, char* argv[]) { float k; c.f=-10; k=0-c.f; printf("k=%f\n",k); printf("Hello World!\n"); return 0; }
一段代码,队列,实现负数赶正数的功能
算法小程序,将数组中所有的负数置于正数前
通过js获取table某一列 td 里面的值,并将其正数变成负数 负数变成正数
这个程序主要用于如果一个数是负数则取值为0,是正数则取这个数
用汇编语言实现统计一个数组中正数负数零的个数。汇编代码
将-8到1的16个数放入30H开始的RAM区,其中正数、负数分别送40H和50H开始的存储单元,正数、负数和零的个数分别送到单元60H,61H,62H。
循环程序设计实验 试编程统计数据区中正数、零和负数的个数
将内存中某数据块中的正数和负数分开,并在屏幕上显示正数和负数的个数
《正数和负数》导入
初一上册人教版数学,适用于学生,教师。初一上册人教版数学,适用于学生,教师。初一上册人教版数学,适用于学生,教师。
通过excel的Frequency 函数 实现 连续正数,负数 最大次数统计 的小案例 公式为数组公式 输入完公式后 按 Ctrl+Shift+ Enter 公式才成立生效 连续为正数的次数 方法1 =MAX(FREQUENCY(IF(SIGN(B2:B31)+1,ROW(2:31)...
求一个长为N(小于255)的ARRAY字数组中正数、负数与零的个数,正数的个数存放在DH中,负数的个数存放在DL中,零的个数存放在BH中。(扩展:将统计的结果显示出来)
写了两个小函数,教你如何判断输入文本框的是否是一个正数,一个函数判断输入的是否是数字,一个函数判断是否是正数
初一正数与负数提高练习题及答案精选.doc
计算机原理,求正数,负数,零的个数的具体步骤,循环分支语句的
计算机组成原理课设---输入5个数,求正数之和,这是三总线的计算机组成原理的课设内容,其中都是设计好的,只要直接运行就可以了
C语言输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出(博主小白)
这是一个平方根生成器,从程序窗口中任意输入一个正数,程序计算该数的算数平方根并在窗口中显示出来。