`

多线程中的原子类

阅读更多
JAVA提供了AtomicInteger,AtomicLong,AtomicReference等原子类,这些原子类有一些方法是原子方法,实例如下:
public class AtomicIntegerTest implements Runnable{
	
	private AtomicInteger i=new AtomicInteger(0);
	
	public int getValue()
	{
	      return i.get();//这是原子方法
	}
	
	
	public void evenIncrement()
	{
		i.addAndGet(2);//这是原子方法
	}
	
	@Override
	public void run() {
		// TODO Auto-generated method stub
		while(true)
		{
			evenIncrement();
			
		}
		
	}
	
	
	public static void main(String[] args)
	{
		new Timer().schedule(new TimerTask(){
			@Override
			public void run() {
				// TODO Auto-generated method stub
				System.err.println("Aborting...");
				
				System.exit(0);
			}
		}, 5000);

		ExecutorService exec=Executors.newCachedThreadPool();
		AtomicIntegerTest ait=new AtomicIntegerTest();
		exec.execute(ait);
		while(true)
		{
			int val=ait.getValue();
			if(val%2!=0)  //运行可知道,这个地方永远不会执行
			{
				System.out.println(""+val);
				System.exit(0);
			}
		}
	}
	
	
	

	
}

分享到:
评论

相关推荐

    Java 多线程与并发(8-26)-JUC原子类- CAS, Unsafe和原子类详解.pdf

    Java 多线程与并发(8_26)-JUC原子类_ CAS, Unsafe和原子类详解

    Sparklingredstar#JavaBooks#Java多线程-Atomic原子类1

    引言JavaGuide :一份涵盖大部分Java程序员所需要掌握的核心知识。star:45159,替他宣传一下子这位大佬,总结的真好!我引用这位大佬的文章,因为

    Java多线程和并发知识整理

    1.1为什么需要多线程 1.2不安全示例 1.3并发问题的根源 1.4JMM 1.5线程安全的分类 1.6线程安全的方法 二、线程基础 2.1状态 2.2使用方式 2.3基础机制 2.4中断 2.5互斥同步 2.6线程合作 三、...

    Java多线程:AtomicIntegerArray 原子更新数组类.docx

    原子更新数组类顾名思义,通过原子的方式更新数组里的某个元素,Atomic包提供了以下三个类: AtomicIntegerArray:原子更新整型数组里的元素。 AtomicLongArray:原子更新长整型数组里的元素。 ...

    concurrent 多线程 教材

    02 Java 程序中的多线程 03 编写多线程的 Java 应用程序 04 如果我是国王:关于解决 Java编程语言线程问题的建议 (2) 05 构建Java并发模型框架 (2) 06 Java 技术: 使您轻松地进行多线程应用程序编程 07 使用...

    多线程并发编程在Netty中的应用分析.zip

    大致内容包括: Java内存模型 Java内存交互协议 Java的线程 Netty的并发编程分析 正确的使用锁 volatile的正确使用 CAS指令和原子类 线程安全类 读写锁的应用

    java多线程安全性基础介绍.pptx

    java多线程安全性基础介绍 线程安全 正确性 什么是线程安全性 原子性 竞态条件 i++ 读i ++ 值写回i 可见性 JMM 由于cpu和内存加载速度的差距,在两者之间增加了多级缓存导致,内存并不能直接对cpu可见。 ...

    JUC多线程学习个人笔记

    JUC(Java Util Concurrent)是Java中用于并发编程的工具包,提供了一组接口和类,用于处理多线程和并发操作。JUC提供了一些常用的并发编程模式和工具,如线程池、并发集合、原子操作等。 JUC的主要特点包括: ...

    Java多线程Atomic包操作原子变量与原子类详解

    主要介绍了Java多线程Atomic包操作原子变量与原子类详解,简单介绍了Atomic,同时涉及java.util.concurrent中的原子变量,Atomic类的作用等相关内容,具有一定参考价值,需要的朋友可以了解下。

    【2018最新最详细】并发多线程教程

    【2018最新最详细】并发多线程教程,课程结构如下 1.并发编程的优缺点 2.线程的状态转换以及基本操作 3.java内存模型以及happens-before规则 4.彻底理解synchronized 5.彻底理解volatile 6.你以为你真的了解final吗...

    92道Java多线程与并发面试题含答案(很全)

    Java并发编程的核心概念包括: 线程(Thread):线程是程序执行流的最小单元。...原子操作(Atomic Operations):原子操作是不可中断的操作,即在多线程环境中,这些操作要么完全执行,要么完全不执行。

    Java-并发(Concurrent)编程

    资源概要:1,多线程;2,synchronized;3,volatile;4,多线程在JVM中的实现...原子类Atomic-CAS及其实现原理 锁Lock-AQS核心原理剖析 并发工具类、并发容器、阻塞队列 线程池原理剖析 线程池案例-Web容器-压力测试

    C#线程锁介绍源码

    1.几种同步方法的区别 lock和Monitor是.NET用一个特殊结构实现的,Monitor...这在抢先多线程操作系统中是很重要的,在这样的操作系统中,线程可以在从某个内存地址加载值之后但是在有机会更改 和存储该值之前被挂起。

    易语言-易语言多线程操作模块

    互斥锁,多线程,条件锁,读写锁,原子操作,线程池,链表操作。易语言源码大全

    c#.net多线程编程教学——线程同步

    随着对多线程学习的深入,你可能觉得需要了解一些有关线程共享资源的问题. .NET framework提供了很多的类和数据类型来控制对共享资源的访问。 考虑一种我们经常遇到的情况:有一些全局变量和共享的类变量,我们需要...

    【原价2300!!】尚硅谷_互联网大厂高频重点面试题视频详细讲解

    上半场,从多线程并发入手,分层递进讲解,逐步让大家掌握volatile、原子类和原子引用、CAS、ABA、Java锁机制、阻塞队列、线程池等重点;下半场,逐步过渡到JVM和GC的知识,深度讲解多种常见OOM异常和JVM参数调优,...

    2019年互联网大厂高频重点面试题(第2季)

    上半场,从多线程并发入手,分层递进讲解,逐步让大家掌握volatile、原子类和原子引用、CAS、ABA、Java锁机制、阻塞队列、线程池等重点;下半场,逐步过渡到JVM和GC的知识,深度讲解多种常见OOM异常和JVM参数调优,...

    2019互联网大厂高频重点面试题 (第2季)脑图-完结.txt

    上半场,从多线程并发入手,分层递进讲解,逐步让大家掌握volatile、原子类和原子引用、CAS、ABA、Java锁机制、阻塞队列、线程池等重点;下半场,逐步过渡到JVM和GC的知识,深度讲解多种常见OOM异常和JVM参数调优,...

    2019互联网面试题第2季.mmap

    上半场,从多线程并发入手,分层递进讲解,逐步让大家掌握volatile、原子类和原子引用、CAS、ABA、Java锁机制、阻塞队列、线程池等重点;下半场,逐步过渡到JVM和GC的知识,深度讲解多种常见OOM异常和JVM参数调优,...

    Java理论与实践:流行的原子

    本文介绍了要使用多处理器系统的功能,通常需要使用多线程构造应用程序。但是正如任何编写并发应用程序的人可以告诉你的那样,要获得好的硬件利用率,只是简单地在多个线程中分割工作是不够的,还必须确保线程确实大...

Global site tag (gtag.js) - Google Analytics