AtomicInteger的使用(高并发)
普通代码处理高并发,对count进行++操作:
public class MyAtomicInteger {
private static final Integer threadCount = 20;
private static Integer num = 0;
private static void increase() {
num++;
}
public static void main(String[] args) {
Thread[] threads = new Thread[threadCount];
for (int i = 0; i < threadCount; i++) {
threads[i] = new Thread(() -> {
for (int i1 = 0; i1 < 2000; i1++) {
increase();
}
});
threads[i].start();
}
while (Thread.activeCount() > 1) {
// 意思就是调用yield方法会让当前线程交出CPU权限,让CPU去执行其他的线程。它跟sleep方法类似,同样不会释放锁。
// 但是yield不能控制具体的交出CPU的时间,另外,yield方法只能让拥有相同优先级的线程有获取CPU执行时间的机会。
// 注意调用yield方法并不会让线程进入阻塞状态