マルチスレッドについてStop()は原子性を破壊する

2615 ワード

public class Main {



    public static void main(String[] args) {

        // TODO Auto-generated method stub

                MutiThread t=new MutiThread();

                Thread t1=new Thread(t);

                

                /* , , ,t1 ,numa ------- */

                t1.start();

                

                for(int i=0;i<5;i++){

                    new Thread(t).start();

                }

                t1.stop();

    }



}



public class MutiThread  implements Runnable {

    int numa=0;

    @Override

    public void run() {

        // TODO Auto-generated method stub

        synchronized (this) {

            numa++;

            try{

                Thread.sleep(1000);

            }catch(Exception e){

                e.printStackTrace();

            }

            numa--;

            String stn=Thread.currentThread().getName();

            System.out.println(stn+"  numa= " + numa);

        }

    }

    

}