JUC--Atomic原子类

Marmara ·
更新时间:2024-09-20
· 762 次阅读

原子类

java.util.concurrent.atomic包:原子类的小工具包,支持在单个变量上解除锁的线程安全编程
原子变量类相当于一种泛化的 volatile 变量,能够支持原子的和有条件的读-改-写操作。AtomicInteger 表示一个int类型的值,并提供了 get 和 set 方法,这些 Volatile 类型的int变量在读取和写入上有着相同的内存语义。它还提供了一个原子的 compareAndSet 方法(如果该方法成功执行,那么将实现与读取/写入一个 volatile 变量相同的内存效果),以及原子的添加、递增和递减等方法。AtomicInteger 表面上非常像一个扩展的 Counter 类,但在发生竞争的情况下能提供更高的可伸缩性,因为它直接利用了硬件对并发的支持。

package com.dimple.test; public class Test5 { public static void main(String[] args) { TestDemo thread = new TestDemo(); Thread t1 = new Thread(thread,"窗口一"); Thread t2 = new Thread(thread,"窗口二"); t1.start(); t2.start(); } } class TestDemo implements Runnable{ //共享的火车票变量 private int count = 100; //重寫run方法 @Override public void run() { while (count > 0){ try { //休眠一下 方便出现并发问题 Thread.sleep(50); }catch (Exception e){ e.getMessage(); } sale(); } } //卖票 public void sale(){ if(count > 0){ System.out.println(Thread.currentThread().getName() +"出售 :" +(100 - count + 1)); count--; } } }

原创文章 30获赞 49访问量 3853 关注 私信 展开阅读全文
作者:yan-x-long



juc atomic 子类

需要 登录 后方可回复, 如果你还没有账号请 注册新账号