线程安全的问题,这是编程中肯定会遇到,遇到必须要解决的问题

计算机编程中,线程的出现极大的提高了我们的运行效率,所以程序中好多都是多线程,然而多线程的使用却存在一些问题,就是当他操作共享数据的时候,如果不对它们进行严格的把控就有可能出现一些问题,就会导致多线程不仅不会增加效率反而会造成程序bug,所以为了防止这种事情出现,今天就帮助大家解决这个问题,让大家知道什么时候可能会出现问题,并且如何解决它,如果您认为这篇文章对您有用,欢迎您关注我们趣IT科技
线程安全的问题,这是编程中肯定会遇到,遇到必须要解决的问题

找到可能出现问题的地方,只需三点

  1. 明确哪些代码是多线程运行代码,run方法中的就是多线程运行代码

  2. .明确共享数据,成员变量就是共享数据

  3. 明确多线程运行代码中哪些语句是操作共享数据的,run方法中操作成员变量

举例说明

线程安全的问题,这是编程中肯定会遇到,遇到必须要解决的问题

代码文本

package tset;

class Bank{

private int sum; //这是共享数据

public void add(int n){ //add在run中,他也是多线程运行代码

sum+=n; //AAAAA这是对数据进行操作,可以看做写会出问题

System.out.println("sum="+sum); //这里也是,但是可以看成读,不会出问题

}

}

class Cus implements Runnable{

private Bank b=new Bank();

public void run(){ //这是多线程运行代码

synchronized(b){ // 我们可以看出在AAAAA处存在问题,所以我们要用锁解决问题了

for(int x=0;x<3;x++)

{

b.add(100);

}

}

}

}

public class AS{

public static void main(String []args){

Cus c=new Cus();

Thread t1=new Thread(c);

Thread t2=new Thread(c);

t1.start();

t2.start();

}

}

代码结果

线程安全的问题,这是编程中肯定会遇到,遇到必须要解决的问题

分析

可以看出,他是完全正确的,用了一个小例子来给大家解决问题多线程中可能遇到的问题,以及在什么时候需要加上锁,希望这篇文章对您有用,欢迎您关注我们头条号:趣IT科技。

线程安全的问题,这是编程中肯定会遇到,遇到必须要解决的问题

每天持续分享关于c语言,java,php,html计算机编程方面的小知识,如果你也喜欢编程,如果你也热爱编程,那么你就来关注我们,一起交流,一起进步,喜欢您就点个赞。

关注头条号:趣IT科技

相关推荐