问题标签 [synchronized]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5567 浏览

java - 在什么情况下,一个空的同步块可以实现正确的线程语义?

我正在查看有关我的代码库的Findbugs报告,并且触发的模式之一是针对空synchronzied块(即synchronized (var) {})。文档说:

空同步块比大多数人认识到的要微妙和难以正确使用,并且空同步块几乎从来都不是比不那么做作的解决方案更好的解决方案。

在我的情况下,它发生是因为块的内容已被注释掉,但synchronized语句仍然存在。在什么情况下空synchronized块可以实现正确的线程语义?

0 投票
6 回答
605 浏览

delphi - 对于在同一类中设置全局变量的例程,什么是好的命名约定

Code Complete(第 7 章第 3 节)说,一个好的函数应该根据它返回的值来命名,而一个类中的一个好的过程名称应该根据它所做的来命名。

当我在 Delphi 中(2009 年之前)编写同步方法时,有时需要使用它们来设置全局变量,这似乎是一种不好的编程习惯,但由于我无法传递变量,因此这是必要的。我不想称它们为“Get”或“Set”,因为我将它们用于我的属性方法。

有人对这些有更好的命名约定吗?

0 投票
10 回答
24754 浏览

java - 正确使用同步单例?

所以我正在考虑建立一个业余爱好项目,一种特殊的东西,只是为了复习我的编程/设计。

它基本上是一个多线程网络蜘蛛,更新相同的数据结构 object->int。

因此,为此使用数据库绝对是矫枉过正,而我唯一能想到的就是用于包含我的数据结构的线程安全单例。http://web.archive.org/web/20121106190537/http://www.ibm.com/developerworks/java/library/j-dcl/index.html

我应该研究另一种方法吗?

0 投票
2 回答
158 浏览

combobox - 同步组合框

如何获得 2 个同步组合框,以便更改一个的索引会自动更改另一个。

0 投票
17 回答
523341 浏览

java - “同步”是什么意思?

synchronized我对关键字的用法和意义有一些疑问。

  • synchronized关键字的意义是什么?
  • 什么时候应该使用方法synchronized
  • 它在程序上和逻辑上意味着什么?
0 投票
2 回答
6078 浏览

java - 在 Java DAO 上使用同步会导致问题吗?

在 Java DAO 中的方法上使用“同步”关键字是否会在 Web 应用程序使用时引起问题?

我问是因为我有一个多线程独立应用程序,它需要同步方法以避免资源冲突,如此处所示。

我担心的是,当大量人尝试使用应用程序时,同步方法会阻塞并减慢整个应用程序的速度。

我正在使用 Spring 注入的 JPA 实体管理器工厂,它为 DAO 提供了一个实体管理器。从技术上讲,我可以删除 DAO 层并让类直接调用实体管理器工厂,但我喜欢 DAO 提供的分离。

我还应该注意,我非常小心不要在线程之间传递连接的实体 ORM 对象。我推测是访问DAO时出现资源冲突错误。我认为多个线程同时运行并尝试以非原子方式持久化或从数据库中读取。

在这种情况下,使用 DAO 会造成更大的伤害而不是帮助吗?


我遗漏的一个重要信息是 DAO 不是单例的。如果我的思考足够清晰,可以包含这些细节,我可能一开始就不会问这个问题。

如果我理解正确,Spring 会为每个使用它的类创建一个 DAO 类的新实例。因此,支持实体管理器对于每个线程应该是唯一的。正如 Rob H 回答的那样,不共享实体管理器是这里的关键。

但是,现在我不明白为什么在删除同步时会出现错误。


根据这个线程,@PersistenceContext 注解创建了一个线程安全的 SharedEntityManager。所以你应该能够创建一个单例 DAO。

0 投票
3 回答
1264 浏览

java - Java 同步和线程

我遇到了 Synchronized 不符合我预期的问题,我也尝试使用 volatile 关键字:

共享对象:

线程 1:

线程 2:

调用类:

偶尔我会得到"In Libya Thread congo cool" 不应该发生的事情。我只期望:
"In Libya Thread libya awesome"
"In Congo Thread congo cool"

我不希望它们混合在一起。

0 投票
4 回答
509 浏览

java - java同步问题

我遇到了 Synchronized 不符合我预期的问题,我也尝试使用 volatile 关键字:

共享对象:

线程 1:

线程 2:

调用类:

偶尔我会得到“在利比亚线程刚果很酷”,这不应该发生。我只期待:“在利比亚线程 libya awesome”“在刚果线程 congo cool”

我不希望它们混合在一起。

0 投票
3 回答
6282 浏览

java - Java 线程共享对象同步问题

我遇到了 Synchronized 不符合我预期的问题,我也尝试使用 volatile 关键字:

共享对象:

线程 1:

线程 2:

调用类:

偶尔我会得到“在利比亚线程刚果很酷”,这不应该发生。我只期待:“在利比亚线程 libya awesome”“在刚果线程 congo cool”

我不希望它们混合在一起。

0 投票
6 回答
44688 浏览

java - Java中的同步方法和同步块有什么区别?

Java中的同步方法和同步块有什么区别?

我一直在网上搜索答案,人们似乎对此不太确定:-(

我的看法是两者之间没有区别,只是同步块可能在范围内更加本地化,​​因此锁定时间会更短?

如果在静态方法上使用 Lock,那么 Lock 是在什么情况下使用的?Lock on Class 是什么意思?