java多线程怎么对公共变量赋值

71次阅读
没有评论

共计 932 个字符,预计需要花费 3 分钟才能阅读完成。

在 Java 多线程中,可以使用 synchronized 关键字来实现对公共变量的赋值。

首先,需要定义一个共享的变量,多个线程都可以修改该变量的值。例如:

public class SharedVariable {private int value;

    public synchronized void setValue(int newValue) {this.value = newValue;
    }

    public synchronized int getValue() {return value;
    }
}

在上述代码中,使用 synchronized 关键字修饰了 setValue 和 getValue 方法,确保了在多线程环境下对 value 变量的读写操作是原子性的。

然后,可以创建多个线程来修改共享变量的值。例如:

public class Main {public static void main(String[] args) {SharedVariable sharedVariable = new SharedVariable();

        Thread thread1 = new Thread(() -> {sharedVariable.setValue(10);
        });

        Thread thread2 = new Thread(() -> {sharedVariable.setValue(20);
        });

        thread1.start();
        thread2.start();

        // 等待线程执行完成 
        try {thread1.join();
            thread2.join();} catch (InterruptedException e) {e.printStackTrace();
        }

        int value = sharedVariable.getValue();
        System.out.println("value: " + value);
    }
}

在上述代码中,创建了两个线程 thread1 和 thread2 来修改共享变量 sharedVariable 的值。使用 join 方法等待线程执行完成后,再打印共享变量的值。

需要注意的是,使用 synchronized 关键字会带来性能的损耗,因此在实际应用中,可以根据具体的需求选择其他的线程同步机制,如使用 Lock 对象、使用 volatile 关键字等。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计932字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)