Java如何在多线程之间共享数据呢?

乔欣 Java经验 发布时间:2023-02-21 21:51:06 阅读数:10158 1
下文笔者讲述java中多线程共享数据的方法分享,如下所示
多线程共享数据的实现思路:
      只需在方法外部定义一个变量
	  然后每个线程方法中都调用此变量

注意事项:
    为了保证线程安全,方法必须加上synchronized关键字
例:多线程共享变量
/**
 * 两个线程执行的方法不一样
 */
public class MultiThreadShareData {
    // 库存数字---多线程共享数据
    private int j = 10;

    public static void main(String[] args) {
        MultiThreadShareData multiThreadShareData = new MultiThreadShareData();
        for (int i = 0; i < 2; i++) {
            //增加
            new Thread(multiThreadShareData.new ShareData1()).start();
            //减少
            new Thread(multiThreadShareData.new ShareData2()).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 ShareData1 implements Runnable {
        @Override
        public void run() {
            for (int i = 0; i < 5; i++) {
                Inc();
            }
        }
    }

    class ShareData2 implements Runnable {
        @Override
        public void run() {
            for (int i = 0; i < 5; i++) {
                Dec();
            }
        }
    }
}

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16769875165879.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者