`

多线程中的原子类

阅读更多
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多线程中的原子操作

    总结来说,Java多线程中的原子操作是保证并发安全的重要手段,通过使用`java.util.concurrent.atomic`包中的原子类,开发者可以编写出高效且线程安全的代码。同时,自定义的数据结构和工具类如CircularSet和...

    多线程程序中的原子操作

    ### 多线程程序中的原子操作 #### 一、引言 在多线程编程中,原子操作是一个至关重要的概念。原子操作指的是不可再分割的操作,即在一个操作执行的过程中不会被其他线程打断。这对于保证多线程程序的正确性和避免...

    C++多线程原子操作

    在C++编程中,多线程环境下的原子操作(Atomic Operations)是确保程序并发执行时数据一致性的重要机制。原子操作是指不可分割的操作,一旦开始执行,就不会被其他线程中断,直到该操作完成。在多线程环境中,不使用...

    易语言线程安全之原子锁与读写锁

    在IT行业中,线程安全是多线程编程中的一个重要概念,确保多个线程并发执行时,数据的正确性和完整性不会受到影响。线程安全通常通过同步机制来实现,其中包括原子操作和锁机制。本文将深入探讨易语言中的原子锁与...

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

    Java多线程与并发处理是Java编程中的高级话题,涉及到JUC(java.util.concurrent)包中的原子类、CAS(Compare-And-Swap)机制、Unsafe类以及多线程并发的无锁方案和线程安全的实现方法。 CAS是一种无锁的同步机制...

    C# 高效线程安全,解决多线程写txt日志类

    但就目前的实现来看,它已经足够处理多线程环境下的日志写入需求,并且通过`lock`保证了操作的原子性。 在实际测试中,我们可以创建一个名为`TestConsoleApp`的控制台应用程序,生成多个线程并调用`...

    PB多线程实现

    1. **线程安全**:确保共享数据在多线程环境下正确访问,通常需要使用锁(如Monitor或Mutex)、信号量(Semaphore)或原子操作来实现。 2. **线程间通信**:线程间的同步和通信至关重要,可以使用事件(Event)、...

    多线程写日志类

    1. **线程安全**:为了保证在多线程环境下写入日志的安全性,日志类可能采用了互斥锁(mutex)、条件变量(condition variable)或者原子操作(atomic operation)等同步机制。这些工具可以确保在同一时间只有一个...

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例),可直接运行

    在.NET框架中,C#语言提供了强大的多线程支持,使得开发者可以充分利用现代多核处理器的优势,实现并行处理和高效能编程。本资源包含六个C#.NET多线程的实例,涵盖了多线程的基本使用到更高级的概念,如线程互斥。...

    多线程导入excel 数据

    在Java编程中,多线程导入Excel数据是一项常见的任务,特别是在大数据处理和高并发场景下。这个场景通常涉及到性能优化和资源管理,以确保系统稳定性和数据一致性。下面将详细阐述多线程导入Excel数据的核心知识点。...

    java多线程Demo

    在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新的类,让它继承Thread类时,可以通过重写`run()`方法来定义线程执行的任务。然后创建该类的对象,并...

    多线程面试题

    11. **线程安全**:线程安全的类或方法可以在多线程环境中被正确使用,不会因为并发访问而导致数据的不一致。Java提供了一些线程安全的集合类,如Vector、ConcurrentHashMap等。 12. **线程局部变量**:ThreadLocal...

    多线程的处理

    在标题“多线程的处理”中,我们可以理解为这是一个关于如何设计、实现和管理多线程应用的讨论。描述提到了“多线程例子”,表明我们将探讨一个具体的实例,这个实例包含有详细的注释,帮助我们理解代码的运行机制。...

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    多线程线程变量赋值

    在编程领域,多线程是实现并发执行任务的重要机制,特别是在服务器端开发和高并发应用中。当多个线程共享同一资源时,数据同步和安全问题就会变得至关重要。本话题聚焦于“多线程线程变量赋值”,讨论如何在不通过...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    C++ 多线程求PI

    在C++编程中,多线程技术是一种提升程序性能的有效方式,特别是在计算密集型任务中,如求解圆周率(PI)。这个项目名为“C++ 多线程求PI”,其目标是利用多线程并行计算来提高求解PI的效率。Word文档中的思路可能...

    java 多线程并发实例

    - volatile:修饰变量,确保多线程环境下的可见性和有序性,但不保证原子性。在实例中,可能用于共享标志的设置与读取。 - wait()、notify()和notifyAll():这些方法存在于Object类中,用于线程间的通信。在线程A...

    多线程开发及其源代码

    在IT行业中,多线程开发是一项至关重要的技术,特别是在当今的高性能计算和实时系统中。多线程允许程序同时执行多个任务,提高了系统的资源利用率和响应速度。本资源"多线程开发及其源代码"专注于教授如何进行多线程...

Global site tag (gtag.js) - Google Analytics