gpt4 book ai didi

java - java中的同步方法

转载 作者:行者123 更新时间:2023-12-01 13:42:26 24 4
gpt4 key购买 nike

我是 java 新手,我正在阅读 java 并发主题。

在这里我发现使用 synchronised关键字(用于方法)只有一个线程可以访问该方法。

它仅适用于共享对象还是该类型的所有对象。即

我有一个名为 A 的类,它有一个同步方法 foo() ,

我创建了两个对象 a1 ,和a2

有四个线程 t1, t2, t3 and t4

t1 and t2 share a1

t3 and t4 share a2

t1 访问方法 foo,同时 t3 也能访问 a2 上的相同方法。

最佳答案

理解为a1对象有单独的内存空间及其数据成员和成员函数。类似地,a2 具有不同的内存空间。现在您与 t1 和 t2 共享了 a1。当 t1 和 t2 线程运行时,首先获得 a1 锁的人将执行 foo()。但是 t1 和 t3 访问 A 类的不同对象,即 a1 和 a2。在这种情况下,线程 t1 和 t3 可能同时使用 foo() 运行,但运行在它们各自持有锁的对象上。

关于java - java中的同步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20611017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com