`
liudunxu2
  • 浏览: 32141 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

正数原子递增选择器

 
阅读更多
原则:
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; }

    C++负数赶正数

    一段代码,队列,实现负数赶正数的功能

    计算机原理求正数,负数,零的个数

    然后,程序使用循环结构遍历DA_WORD数组,对每个元素进行比较,如果元素大于或等于0,则将 NUM+0(正数的个数)递增1,否则,如果元素小于0,则将 NUM+2(负数的个数)递增1,如果元素等于0,则将 NUM+1(0的个数)...

    所有负数置于正数前

    在编程领域,"所有负数置于正数前"是一个常见的数组操作问题,它涉及到数组的排序和遍历。这个问题的基本目标是保持数组中元素的相对顺序,但将所有负数移动到所有正数前面,而不需要对整个数组进行排序。这种操作在...

    js获取table某一列的值,并将其正数变成负数 负数变成正数

    #### 问题1:DOM选择器的效率 - **原问题**:代码使用了`document.getElementsByTagName('td')`来获取所有`<td>`元素,这虽然可以工作,但在性能上并不是最优的选择。 - **解决方案**:推荐使用`document....

    取正数的matlab程序

    这个程序主要用于如果一个数是负数则取值为0,是正数则取这个数

    初一正数与负数提高练习题及答案精选.doc

    7. **数列规律**:题目中正方形内的数字呈现递增规律,可以通过观察得出m的值。例如,16,22,28,34,可以发现每次增加6,因此m=34+6=40,答案为D。 8. **有理数分类**:有理数包括整数和分数,整数分为正整数、0和负...

    汇编实现统计正数负数零的个数

    用汇编语言实现统计一个数组中正数负数零的个数。汇编代码

    unigui限制正数输入框 -限制位数.rar

    在这个特定的场景中,“unigui限制正数输入框 -限制位数.rar”可能是一个项目或教程,旨在教用户如何在使用UniGUI(一个基于VCL和FireMonkey的跨平台UI框架)开发Delphi应用时,限制用户只能输入正数,并且控制输入...

    计算机组成原理课设---输入5个数,求正数之和

    这个课设的主题是“计算机组成原理课设---输入5个数,求正数之和”,它是一个典型的数字逻辑与计算机体系结构的应用实例。在这个项目中,你需要设计一个能够接收5个整数输入,并计算其中正数和的系统。考虑到描述中...

    unigui限制正数输入框 -限制位数++.rar

    2. **输入验证**:在监听器中,使用正则表达式或者条件判断来检查输入值是否为正数,以及其位数是否符合规定。 3. **错误处理**:如果输入不符合要求,可以通过显示警告消息、清除输入框或者拒绝输入等方式进行反馈...

    将内存中的正数和负数分开的汇编语言程序

    将内存中某数据块中的正数和负数分开,并在屏幕上显示正数和负数的个数

    判断输入的是否是正数

    标题提到的“判断输入的是否是正数”是一个常见的需求,特别是在涉及数值验证的场景,例如在线表单、计算器应用或者任何需要用户输入数值的交互。这个需求通常会涉及到两个主要的检查:一是确认输入的是数字,二是...

    TIA博途WINCC-如何在IO域中保证输入数值只能为正数?.docx

    设置下限为2,并选择“常量”,然后将下限值设为0。这意味着输入值不能小于0,这样就实现了只允许输入正数的限制。当用户尝试输入负数时,HMI将显示“数值超出范围”的提示,告知用户有效的数值范围是[0,+∞)。 ...

    如何分别统计连续为正数、负数的次数?.xls

    通过excel的Frequency 函数 实现 连续正数,负数 最大次数统计 的小案例 公式为数组公式 输入完公式后 按 Ctrl+Shift+ Enter 公式才成立生效 连续为正数的次数 方法1 =MAX(FREQUENCY(IF(SIGN(B2:B31)+1,ROW(2:31)...

    《正数和负数》导入.fla

    《正数和负数》导入

    编程统计数据区中正数、零和负数的个数

    - 分支结构主要用于根据条件选择执行不同的代码路径,常见的分支结构有`IF...ELSE`、`SWITCH...CASE`等。 - 在汇编语言中,可以使用条件转移指令来实现类似的功能。 ### 实验内容解析 本实验的主要目标是编程统计...

    分离字数组array中正,负数,把其中正数复制到pdata数组,负数复制到ndata数组,并分别统计正,负数个数

    标题中的任务是将一个包含正负整数的数组(array)分离,将正数复制到新的数组(pdata),负数复制到另一个数组(ndata),同时统计正数和负数的数量。这个过程涉及到汇编语言编程,特别是分支程序设计。下面我们将...

    1.1 正数和负数学案.doc

    初一上册人教版数学,适用于学生,教师。初一上册人教版数学,适用于学生,教师。初一上册人教版数学,适用于学生,教师。

Global site tag (gtag.js) - Google Analytics