Java如何在多线程之间共享数据呢?
下文笔者讲述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(); } } } }
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。