Java类之AtomicBoolean
来源:互联网 发布:钱咖淘宝返利 编辑:程序博客网 时间:2024/05/16 15:48
概述
在Java.util.concurrent.atomic包下,有AtomicBoolean , AtomicInteger, AtomicLong, AtomicReference等类,它们的基本特性就是在多线程环境下,执行这些类实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打断,而别的线程就像自旋锁一样,一直等到该方法执行完成,才由JVM从等待队列中选择一个另一个线程进入。
举例说明
普通的Boolean
package com.example;import java.util.concurrent.atomic.AtomicBoolean;public class MyClass{ public static void main(String[] args) { Thread thread1 = new Thread(new CommonBoolean("普通线程一")); Thread thread2 = new Thread(new CommonBoolean("普通线程二")); thread1.start(); thread2.start(); } private static class CommonBoolean implements Runnable{ public static boolean exits = false; private String name; public CommonBoolean(String name) { this.name = name; } @Override public void run() { if(!exits){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } exits = true; System.out.println(name + ",执行了!"); System.out.println(name + ",执行了!"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(name + ",执行了!"); exits = false; } } }}
打印结果:
AtomicBoolean
package com.example;import java.util.concurrent.atomic.AtomicBoolean;public class MyClass{ public static void main(String[] args) { Thread thread3 = new Thread(new TestAtomicBoolean("特殊线程三")); Thread thread4 = new Thread(new TestAtomicBoolean("特殊线程四")); thread3.start(); thread4.start(); } public static class TestAtomicBoolean implements Runnable{ public static AtomicBoolean exits = new AtomicBoolean(false); private String name; public TestAtomicBoolean(String name) { this.name = name; } @Override public void run() { if(exits.compareAndSet(false,true)){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(name + ",执行了!"); System.out.println(name + ",执行了!"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println(name + ",执行了!"); exits.set(false); } } }}
执行结果:
0 0
- Java类之AtomicBoolean
- java中Atomic类之AtomicBoolean
- java中Atomic类之AtomicBoolean
- java中Atomic类之AtomicBoolean
- java中Atomic类之AtomicBoolean
- java 并发之AtomicBoolean、AtomicInteger
- java.util.concurrent.atomic 类 AtomicBoolean
- 笑谈java并发编程一之AtomicBoolean介绍
- JavaAPI之AtomicBoolean
- atomic包之AtomicBoolean
- Java AtomicBoolean使用
- AtomicBoolean运用 (Java 线程)
- AtomicBoolean 类用法
- AtomicBoolean
- AtomicBoolean
- 读AtomicBoolean源码之浅析
- android AtomicBoolean类的使用
- [多线程编程]多线程同步之Object、AtomicBoolean
- 我还活着......
- CMS内容管理系统开发-JavaScript相关知识及小游戏开发实例
- 理解LinkedHashMap
- JS实现复选框的全选和批量删除功能
- PHP工作笔记:Yii2框架设置页面的关键词和描述
- Java类之AtomicBoolean
- 6.6、计算成员避免无限循环与solve_order
- HDU3427
- 从零到百亿互联网金融架构发展史
- 洛谷P1509明明的随机数c++
- 使用 PureMVC 和 Cocos2d-js 构建游戏项目 II
- 安卓组件------列表选择框
- easyui仿百度搜索提示框
- HashMap在Java里是怎么工作的