线程的三大特性
原子性
即一个操作或多个操作要么全部执行并且执行过程中不被任何因素打断,要么就不执行。
package com.wdy.thread;
import java.util.concurrent.atomic.AtomicInteger;
public class ThreadAtomicDemo {
public static int i=0;
public static class AtomicThread extends Thread{
//静态内部类继承Thread
@Override
public void run() {
while(true) {
i++;//i++,i--,++i,--i 不是原子性操作。
//比如i++ 先赋值,后自增两个步骤,中间有间隔。这个两个步骤可能出现在两个线程中。因此结果中出现了两个连续重复的i
//因此这样的操作是线程不安全的。
System.out.println(this.getName()+"::"+i);
try {
sleep(200);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
Thread t1=new AtomicThread();
t1.setName("A");
Thread t2=new AtomicThread(