使用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的值是他们三个一起改变的,所以实现了资源共享,比如在卖票系统中国可以使用
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
一、Java多线程和高并发