gpt4 book ai didi

java - 在线程中使用同步

转载 作者:行者123 更新时间:2023-11-29 09:40:20 26 4
gpt4 key购买 nike

下面的理解是什么?
我经历了this在 SO 上发布,但仍然无法组装它。

代码1:

synchronized(this){ 
// some code
}

代码2:

Object lock = new Object();

synchronized(lock){
// some code
}

任何教程或一些链接来解释同步,就像他们向 child 解释一样?

最佳答案

基本上,Java 中的每个对象都有一个“锁”。

当线程到达对同步(某物)的调用时,它必须在继续之前获取某物的锁。如果你想一次只允许一个线程修改一个对象的状态,最明显的事情就是同步那个对象的锁。如果允许并行调用不同的方法,则需要不同的锁。

如果写synchronized(this),或者简单的synchronized,线程必须获取与当前对象关联的锁(方法被调用)。

请注意,自 Java 5.0 起,并发包提供了正确的 locks可以用来代替同步。

关于java - 在线程中使用同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354086/

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