原子性

    1.一个操作是不可中断的,即使多个线程在一起执行的时候,一旦操作执行开始,就不会被其他的线程干扰执行并导致执行中断。
    2.对于静态变量int ,2个线程同时对它进行修改,线程a对它修改为10,线程b对它修改为15,a、b线程之间是没有干扰的,最后的结果要么是10或者15。
    3.非原子性操作时,都会存在线程安全问题,所以需要同步技术;i<1000;i++){
  • count++;
  • }
  • System.err.println(count);
  • }
  • @Override
  • public void run() {
  • addCount();
  • }
  • public static void main(String[] args){
  • MyThread_volatile2[] myThread_volatile2 = new MyThread_volatile2[10];
  • for (int i=0;i<myThread_volatile2.length;i++){
  • myThread_volatile2[i] = new MyThread_volatile2();
  • }
  • for (int i=0;i<10;i++){
  • myThread_volatile2[i].start();
  • }
  • }
  • }
  • 输出:
  • 1000
    2000
    3000
    4000
    5309
    6716
    7716
    5716
    8716
    9716
  • 05-11 19:19