问题标签 [non-thread-safe]

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 投票
2 回答
92 浏览

java - 从非线程安全方法初始化静态 Java 常量

让有一个类定义,如

createValue()方法不引用该DEFAULT_VALUE字段,仅在Bootstrapper类的构造函数中以其他方式调用,并且不是线程安全的。

上面的代码有什么问题(除了编程风格)吗?考虑到类初始化的规则,大概线程安全不是问题,但是程序员需要注意什么重要的事情?

0 投票
0 回答
568 浏览

java - 让线程运行一个 Jframe

我是经验丰富的程序员,但直到最近才使用 Java。我有一个通过从互联网(huzzah)复制代码来工作的类,当我在使用 main() 函数时将下面的代码作为自己的线程运行时,Jframe 在自己的线程中运行。

但我有一个问题。我想将此 Jframe 用作另一个线程的交互部分(作为实现 Runnable 类的私有成员)。而且我希望他们能够互动。Jframe 方法 actionPerformed 需要调用父线程对象的函数(我输入命令,它会做一些事情)并且父需要调用 .append() 方法将结果报告给 Jframe。我可以在我的 Jframe 中包含对父级的引用,这样我就可以调用它的方法。

所以我的问题是关于为线程同步正确设计这个。我不确定线程​​同步和事件处理程序如何交互,因此我的线程可以正确使用非线程安全的 Jframe。

我在哪里以及如何正确初始化 Jframe?(具体来说,我应该以某种方式使用 EventQueue 吗?)还是我错过了一些明显的东西并且以完全错误的方式这样做?

0 投票
1 回答
2552 浏览

java - TreeMap中的这个空指针异常是由于并发访问吗?

我知道TreeMap不是线程安全的。我正在尝试将 TreeMap 与ConcurrentSkipListMap进行比较。我使用的代码如下所示,我想确定我得到的错误是否是由于 TreeMap 不是线程安全的,而不是因为其他原因。

java.util.TreeMap.fixAfterInsertion(TreeMap.java:2127) 的 java.util.TreeMap.rotateLeft(TreeMap.java:2060) 的线程“pool-1-thread-52”java.lang.NullPointerException 中的异常。 util.TreeMap.put(TreeMap.java:574) at ThreadTestTreeMap$1.run(ThreadTestTreeMap.java:39) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$ Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745)

0 投票
1 回答
28 浏览

thread-local - 如何在 light-4j 处理程序中共享不是线程安全的 util 对象

我从 openapi yaml 文件生成了代码。我正在实现 handleRequest 方法。我需要共享“Util”对象的同一个实例,以便在所有 handleRequest 调用中重用它。你能告诉我在哪里存储我的 Util 对象实例吗?我的 Util 类不是线程安全的,所以我应该为每个客户端线程创建一个实例。

0 投票
0 回答
137 浏览

testing - 使用 TestNG 并行运行 Selenium Webdriver 测试不会向浏览器发送正确的数据

我有两个 TestNG 类,每个类都有一个测试方法。每个测试类都有自己的@Dataprovider。每个测试都使用 Selenium Webdriver 在 Web 应用程序上执行功能。驱动程序是通过工厂方法和线程本地为每个 TestNG 类创建的,因此驱动程序应该是线程安全的。但是,当使用 testng.xml 并行运行测试时,两个测试都使用相同的数据,导致一个测试失败。这是代码。我认为这可能是 Excel Utility 类的线程安全问题。

0 投票
3 回答
152 浏览

java - 变量的不同步读/写可能导致数据竞争?

Jack ShiraziJava Performance Tuning中写道:

这意味着变量的访问和更新是自动同步的(只要它们不是长整数或双精度数)。如果一个方法只包含一个变量访问或赋值,就没有必要为了线程安全而使其同步,并且出于性能考虑不这样做的所有理由。线程安全进一步扩展到独立于任何其他变量值访问或分配给变量的任何语句集。

根据上面的描述,操作 likeflag = true总是原子的,不需要synchronize.

但是,这里有另一篇文章将以下情况视为数据竞争

作者说:

现在,所有执行都有数据竞争,因为标志不是易失的

这两篇文章之间的冲突让我很困惑。

0 投票
0 回答
12 浏览

php - 线程安全和非线程安全 PHP 的区别

当我尝试安装 php 时,有两种下载选项,一种是线程安全的,另一种是非线程安全的。它们之间有什么不同[在此处输入图像描述][1]nce,它的用途是什么?

0 投票
1 回答
34 浏览

java - 使用非线程安全注解的 Java 类

我有一个 java 类,它代表带有注释 @NonThreadSafe 的 AWSSecretManager 客户端,我可以使用 Singleton 来获取该类的单个实例吗?

0 投票
0 回答
4 浏览

non-thread-safe - 解析日期失败,因为 SimpleDateFormat 不是线程安全的

请参阅 net.ucanaccess.converters.Functions.dateValue() 函数,此函数可能会出现异常,因为 SimpleDateFormat 不是线程安全的