gpt4 book ai didi

Java 并发 : Alternative to Multi Threading (working with non thread safe environment)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:19 25 4
gpt4 key购买 nike

我正在使用创建非线程安全组件实例的第 3 方专有库(无源代码)。这是否意味着我不应该使用多个线程来并行运行作业?在它自己的 JVM 中运行每个作业在我的脑海中闪过,但是太过分了。

然后我在这里阅读文章

http://cscarioni.blogspot.com/2011/09/alternatives-to-threading-in-java-stm.html

是否建议遵循该文章的建议?还有哪些其他选择?

对马丁·詹姆斯的回应:

供应商告诉我只有一个线程,其中存在组件的多个实例(创建组件实例的工厂模式)并且每个实例都可以通过它的 API 独立控制。

那么这是否意味着我仍然可以使用多个线程同时控制在一个大线程中运行的每个组件实例?

最佳答案

不,不是这个意思。这意味着您应该自己关心数据保护。一种可能的方法是在调用它的代码(您的代码)中同步对该库的访问。其他可能的方法是使用不可变对象(immutable对象)(例如,每次要使用非线程安全数据结构时都制作私有(private)副本)。

另一种方法是设计您的应用程序,使与特定对象一起工作的代码始终在同一线程中运行。这并不意味着与其他对象(即使是同一类)一起工作的代码不能在其他线程中运行。因此,系统是多线程的,但不会产生数据冲突。

关于Java 并发 : Alternative to Multi Threading (working with non thread safe environment),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310524/

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