使用Runnable实现资源共享

例子

    原因 因为使用Runnable只实例化一个对象,然后用Thread来封装这个对象,操作的是这个对象的属性,所以可以一起修改这个属性 代码
public class Test {
          
   

    public static void main(String[] args) {

        Demo d = new Demo();
        Thread dd = new Thread(d,"DD1");
        Thread dd2 = new Thread(d,"DD2");
        Thread dd3 = new Thread(d,"DD3");
        dd.start();
        dd3.start();
        dd2.start();
    }

}

public class Demo implements Runnable{
          
   
    private int a = 30;
    @Override
    public void run() {

    for(int i = 10;i>1;i--){
    System.out.println("此时i为"+i+"此时a为"+(a++));
        }

    }

}
    运行的部分结果为 时i为10此时a为30 此时i为9此时a为31 此时i为8此时a为32 此时i为7此时a为33 此时i为6此时a为34 此时i为5此时a为35 此时i为4此时a为36 此时i为3此时a为37 此时i为2此时a为39 此时i为10此时a为40 此时i为9此时a为41 此时i为8此时a为42 此时i为7此时a为43 此时i为6此时a为44 此时i为5此时a为45 此时i为4此时a为46 此时i为10此时a为38 此时i为9此时a为48 此时i为3此时a为47 此时i为8此时a为49 此时i为2此时a为50 此时i为7此时a为51 此时i为6此时a为52 此时i为5此时a为53 此时i为4此时a为54 此时i为3此时a为55 此时i为2此时a为56 a的值是他们三个一起改变的,所以实现了资源共享,比如在卖票系统中国可以使用
经验分享 程序员 微信小程序 职场和发展