thread-safety相关内容

您可以在单个vert.x上运行Verticle的并发实例吗?这些实例是线程安全的吗?

我知道这个问题已经被问过了,但我认为它从来没有得到过准确的答案。 Vert.x是否可以在单个Vert.x上运行同一Verticle的多个实例,这意味着单个Verticle可以在多个事件循环上运行?如果是这样的话,每个事件循环是运行相同的处理程序实例还是运行单独的处理程序实例,换句话说,是同一个Verticle的多个实例线程安全且不共享任何状态,还是会有并发问题? 根据Vert.x文档- ..
发布时间:2022-09-24 16:24:28 其他开发

Python paraiko线程安全吗?

我希望在并行执行某些命令时轮询系统状态,如内存负载或CPU负载。我可以在多个python线程中使用一个pariko客户端,还是必须连接多个pariko客户端?我找不到任何有关paraiko线程安全的文档。 感谢您的帮助 托马斯 推荐答案 Paramiko不是线程安全的。 相关问题: Is it necessary to open a SFTPClient per on ..
发布时间:2022-09-01 22:45:28 Python

线程同步:如何保证写操作的可见性

已经有很多关于软件和硬件内存模型、内存栅栏、存储/加载重新排序等的信息。然而,这些信息似乎都集中在确保对共享内存的读取和写入的相对顺序。 这样的系统将线程的写入完全延迟很长时间是否合法? 例如,假设一个线程对内存中的数据结构进行了一些更新,然后引发了一个应该将更新通知其他线程的标志: (dataWritten is initially false) store value1 st ..

用于线程和进程的Python3锁定(&Q)

我一直在尝试在python3中编写缓存代码,我希望避免线程和进程的并发问题。 我一直使用threading表示线程安全代码,使用multiprocessing表示进程安全。 我可以同时使用Lock Fromthreading和Lock Frommultiprocessing来解决问题。 但我想知道是否有一种“通用”锁来做这件事或类似的事情。 提前感谢;-) 推荐答案 ..

Python:在多线程中打印

我有一个基于Twisted的网络系统的实现。我注意到,当我在新线程而不是主线程中运行函数(执行一些数学运算并打印结果)时,print函数导致Segmentation fault。有可能吗?是否有避免这种情况的选项? 推荐答案 我的方法,基于Bram Cohen's suggestion: 定义全局Lock变量 from threading import Lock s_pr ..
发布时间:2022-02-25 20:48:11 Python

Volatile关键字&线程本地内存

我对Java中volatile关键字的用法感到困惑。我在网上看了很多文章,但还是一无所获。我脑子里有很多问题想问: 首先,Wikipedia和许多博客都说,所有volatile变量都存储在线程本地内存中,而不是所有线程共享的主内存中!我有点困惑,他们是指stack memory吗?我知道每个线程都有自己的stack memory,它在其中存储自己的基元文字和对象引用。 如果是,那么如果vo ..
发布时间:2022-02-25 20:46:47 Java开发

正在并行更新同一对象的不同属性。调用是线程安全的吗?

我正在使用一个包含复杂属性的类。这些属性中的每一个都是通过不同的方法计算的。我使用Parallel.Invoke更新同一对象的不同属性。这是否会对对象造成任何问题? // sample class definition. I've simplified the example by using 'object' type // for complex types. public class ..

收藏已修改;枚举操作可能无法执行

我无法深入了解这个错误,因为在附加调试器时,它似乎没有发生. 集合已修改;枚举操作可能无法执行 下面是代码. 这是 Windows 服务中的 WCF 服务器.只要有数据事件,服务就会调用 NotifySubscribers() 方法(随机间隔,但不经常 - 每天大约 800 次). 当 Windows 窗体客户端订阅时,订阅者 ID 会添加到订阅者字典中,当客户端取消订阅时 ..
发布时间:2022-01-30 09:54:12 C#/.NET

缓存 JNI 对象和线程安全(在 Android 中)

我正在使用本机线程 (pthreads) 编写 C++ 应用程序,我需要调用一些 Java 方法等.我不确定哪些 JNI 对象可以安全缓存,即存储在我的 C++ 对象中以供以后使用,可能/可能由不同的线程.我知道如果我的类的方法可以被不同的线程调用,我不能缓存 JNIEnv,而是缓存 JavaVM 并通过附加当前线程来获取 JNIEnv.但这是否也意味着我不能缓存从 JNIEnv 获得的任何东西? ..

如何以线程安全的方式迭代容器?

我有一个容器 (C++),我需要从不同的线程以两种方式对其进行操作:1) 添加和删除元素,以及 2) 迭代其成员.显然,在迭代发生时删除元素 = 灾难.代码如下所示: A 类{上市:...void AddItem(const T& item, int index) {/*将项目放入 my_stuff 的 index*/}void RemoveItem(const T& item) {/*从 m_ ..
发布时间:2022-01-24 11:50:53 C/C++开发

事务中的 LAST_INSERT_ID() 是否可靠?

我正在使用 mysql/ado.net/C# 这是我的问题我知道 mysql 是并发的,但是我有文件数据(缩略图名称)和 db 数据(行)要同步. 如果我开始交易但由于任何原因失败,这会是一个问题吗?如果我让这段代码在两个核心上同时运行,它们会互相破坏吗?我基本上需要知道 1) last_insert_id 是否可靠而不改变.2) 如果一个事务使用所述rowid,则另一个事务不会使用它. ..
发布时间:2022-01-23 22:11:59 C#/.NET

哪些 ADO.NET 数据集/数据表方法对于多个读取器线程是安全的?

我正在为相对静态且定期从数据库更新的数据创建自定义缓存对象.我选择使用强类型数据集来存储缓存数据.现在,通过 ReaderWriterLockSlim 同步对自定义缓存对象的读取和刷新(客户端无法写入缓存,只能刷新)访问.但是,我想确保缓存的客户端不会通过同时修改其组成对象来破坏强类型数据集中的数据(DataTables、DataRows 等),即使客户端 ~不应该~ 更改数据.因此,我的方法是, ..
发布时间:2022-01-23 21:47:43 C#/.NET

java变量本身是线程安全的吗?更新变量时?

假设我有两个线程更新一个对象,一个线程不同步地从该对象读取.显然,这是运行条件.但是,我想知道变量本身是否只能部分写入. 公共类 CommonObject 扩展 Object{静态 int memberVar=-1;}公共类 Input1Thread 扩展 Thread{公共无效运行(){而(真)CommonObject.memberVar = 1}}公共类 Input2Thread 扩展 Th ..

我是否需要同步对 Java 中不可变类型的访问?

假设我有这个课程: 类动物园{受保护的字符串熊名;受保护的双重培训师薪水;受保护的整数猴子计数;} 可以一个线程写入这些字段,另一个线程读取它们,而不需要 synchronized 访问 Zoo 对象吗? 注意:这些值可以彼此分开处理,因此在读取 monkeyCount 时更改 trainerSalary 并不重要. 编辑: 澄清一下,这些字段是可变的;只有它们引用的对象是不 ..
发布时间:2022-01-22 20:46:26 Java开发

通过 this vs dummy 对象同步

到目前为止,我已经看到了同步块的用法,但最近我了解到使用虚拟对象更可取.我找到了与此相关的以下主题. Java 同步方法锁定对象或方法? 总而言之,在下面的代码中,两个不同的对象不能同时运行 addA 和 addB,因为两者都使用 this 来锁定. private int a;私人int b;公共同步无效 addA(){一个++;}公共同步无效 addB(){b++;} 如果我使 ..

测试 Java 方法是否同步的好方法是什么?

我有几个类实现了一些接口.该接口有一个合同,一些方法应该同步,而有些方法不应该同步,我想通过所有实现的单元测试来验证该合同.这些方法应该使用 synchronized 关键字或锁定在 this - 非常类似于 synchronizedCollection() 包装器.这意味着我应该能够从外部观察它. 继续Collections.synchronizedCollection() 如果我有一个线 ..