首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

简单的java同步有关问题及解决方案

2013-01-25 
简单的java同步问题及解决方案本文适合读者群为对java多线程有一定了解的人(知道Thread和Runnable)。?线程

简单的java同步问题及解决方案

本文适合读者群为对java多线程有一定了解的人(知道Thread和Runnable)。

?

线程同步是一个经常被人谈及的话题。这篇博客讲的就是java的线程同步问题。

?

首先,我们来看下面的一个类。

package com.cici.threads;import java.util.concurrent.atomic.AtomicLong;public class Plus4 implements Runnable{private AtomicLong num = new AtomicLong(0);public void run(){a();}private void a() {for(int i=0;i<100;i++){num.addAndGet(1);if((num.get())%1000==0)System.out.println("num:"+num);}}}

?atomic的意思是原子,意为不可分割的。对一个atomicLong类型的对象调用addAndGet方法逻辑上和对一个long类型的值进行++操作是完全一样的。原子操作可以说是从根源上解决了同步问题。如果每一台计算机上的操作都是原子操作,那么这个计算机就是实时系统,实时系统是没有同步问题的。

热点排行