关于java方法多线程访问自己的理解

来源:互联网 发布:江西农业大学网络教学 编辑:程序博客网 时间:2024/06/11 08:30

方法体应该是随着类创建的,因此应该在代码区

 

因此线程对象访问这个方法体的时候,每一个线程对象都是一个cpu 都会纪录当前执行到那里,例如两个线程对象执行下列行数

 

 

public void runA()

{

     for(int i=0;i<100;i++)

      {

                system.out.println(i.tostring());

       }

 

}

 

线程对象A,B 同时进行运行,A执行到 int i=0  并不会影响到B 执行 int i=0 也就是说 A执行过了 i++,并不会让 B的i 变成1;因为他们都有程序运行时候的标记,记录上一次运行时候的变量状态,不会混乱。

 

 

但是对于公共变量例如 有一个类的全局变量

 

public static int  count;

 

public void runA()

{

     for(int i=0;i<100;i++)

      {

                count++;

                system.out.println(i.tostring());

       }

 

}

 

这里 count 就需要进行线程同步,因为这个变量是全局的 谁都可以去更改,如果想不影响到自己,那么就要索住它。

 

 

分析线程是否需要同步,就要看是否有多个线程会访问到公共资源。

原创粉丝点击