您现在的位置是:首页 >

python多线程数据交互 多线程成共享数据方式

火烧 2022-01-25 05:50:20 1092
多线程成共享数据方式 u lic cla MultiThreadShareData { /** * 多线程成共享数据 面试题 第一种 买票系统 方法 * 方式 :如果每个线程执行相同的代码 可以使用同

多线程成共享数据方式  

python多线程数据交互 多线程成共享数据方式
    public class MultiThreadShareData {        /**        * 多线程成共享数据 面试题 第一种 买票系统 方法         * 方式 :如果每个线程执行相同的代码 可以使用同一个Runable对象 这个Runable对象中有那个共享的数据        */        public static void main(String[] args) {        ShareData data = new ShareData ()         new Thread(data) start()         new Thread(data) start()         }        }        class ShareData implements Runnable{        private int count = ;        @Override        public void run() {        while(true){        count ;        }        }        }        ××××××××××××××××××××××××××××××××××××××××××××        public class MultiThreadShareData {        /**        * 多线程成共享数据(共享数据是指同一个对象)        * 面试题         * 第二种方式 如果比如多个个线程执行代码不同比如以下示例一会加 一会减 测需要 个Runable 对象来操作         设计 个线程 其中 个线程每次对j增加 另外两个线程对J 每次减少 写出程序         */        public static void main(String[] args) {        //共同对象        final ShareData data = new ShareData()                 new Thread(new Runnable(){//内部类        @Override        public void run() {        data sub()         }        }) start()                 new Thread(new Runnable(){        @Override        public void run() {        data add()         }        }) start()         }        }        class ShareData {        private int j= ;        public synchronized void add(){        j++;        }        public synchronized void sub(){        j ;        }        }        demo : 网上搜索的答案        /**        * 第二种方式 如果比如多个个线程执行代码不同比如以下示例一会加 一会减 测需要 个Runable 对象来操作         设计 个线程 其中 个线程每次对j增加 另外两个线程对J 每次减少 写出程序         * @author Administrator        * 这里 个Runnable都是内部类 可以访问外部类的成员变量 这里是 j 通过内部类调用外部类方法 J++ J         */        public class ThreadTest {        private int j;        public static void main(String args[]) {        ThreadTest tt = new ThreadTest ()         //必须通过外部类的对象才能实例化内部类        Inc inc = tt new Inc()         Dec dec = tt new Dec()         for (int i = ; i < ; i++) {        Thread t = new Thread(inc)         t start()         t = new Thread(dec)         t start()         }        }        private synchronized void inc() {        j++;        System out println(Thread currentThread() getName() + inc: + j)         }        private synchronized void dec() {        j ;        System out println(Thread currentThread() getName() + dec: + j)         }        //内部类 增        class Inc implements Runnable {        // 可以操作外部类的变量 j        public void run() {        for (int i = ; i < ; i++) {        inc()         }        }        }        //内部类 减        class Dec implements Runnable {        // 可以操作外部类的变量 j        public void run() {        for (int i = ; i < ; i++) {        dec()         }        }        }        } lishixinzhi/Article/program/Java/gj/201311/27451  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码