原子操作integer:msg.what值的产生

来源:互联网 发布:解压密码暴力破解软件 编辑:程序博客网 时间:2024/05/19 14:53

1、原子操作是为了产生不重复的值:android中动态生成message中的msg.what的值


private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1);



private static int generateViewId() {
for (;;) {
final int result = sNextGeneratedId.get();
// aapt-generated IDs have the high byte nonzero; clamp to the range
// under that.
int newValue = result + 1;
if (newValue > 0x00FFFFFF)
newValue = 1; // Roll over to 1, not 0.
if (sNextGeneratedId.compareAndSet(result, newValue)) {
return result;
}
}
}
0 0
原创粉丝点击