thread-safety相关内容

C# 中的线程安全属性

我正在尝试在 C# 中创建线程安全属性,并且我想确保我在正确的路径上 - 这就是我所做的 - private readonly object AvgBuyPriceLocker = new object();私人双 _AvgBuyPrice;私人双 AvgBuyPrice{得到{锁定 (AvgBuyPriceLocker){返回_AvgBuyPrice;}}放{锁定 (AvgBuyPriceLo ..
发布时间:2022-01-02 18:24:04 C#/.NET

带有 get/set 的 C# 线程安全

这是一个 C# 的详细问题. 假设我有一个带有对象的类,并且该对象受锁保护: Object mLock = new Object();MyObject 属性;公共我的对象我的财产{得到 {归还财产;}放 {财产=价值;}} 我希望轮询线程能够查询该属性.我还希望线程偶尔更新该对象的属性,有时用户可以更新该属性,而用户希望能够看到该属性. 下面的代码会正确锁定数据吗? Object ..
发布时间:2022-01-02 18:11:55 C#/.NET

Python 的 Requests 库线程中的 Session 对象是否安全?

Python 流行的Requests 库在其主页上被认为是线程安全的,但没有提供更多细节.如果我调用 requests.session(),我可以像这样安全地将这个对象传递给多个线程: session = requests.session()对于 xrange(thread_count) 中的 i:线程.线程(目标=目标,args=(会话,),夸格={}) 并在多个线程中使用相同的连接池发出请 ..
发布时间:2021-12-31 19:50:25 Python

SoapHttpClientProtocol 线程安全吗?

我使用 VS 2008 (c#) 的“添加 Web 引用"功能创建了一个 Web 服务代理. 生成的类派生自SoapHttpClientProtocol 我可以在单例中只存储一个代理实例吗?它是线程安全的吗?调用之间是否存在阻止我执行此操作的状态? 解决方案 没有.它不是线程安全的.客户端必须处于打开状态才能启用呼叫.一个简单的场景,一个线程执行 client.Close() ..
发布时间:2021-12-31 19:31:29 C#/.NET

不可重入定时器

我有一个函数,我想每 x 秒调用一次,但我希望它是线程安全的. 我可以在创建计时器时设置此行为吗?(我不介意我使用哪个 .NET 计时器,我只是希望它是线程安全的). 我知道我可以在我的回调函数中实现锁,但我认为如果它在计时器级别会更优雅. 我的回调函数和环境与 UI 无关. [编辑 1]我只是不希望我的回调函数中有多个线程. [编辑 2]我想将锁定保持在计时器级别内 ..
发布时间:2021-12-31 15:22:12 C#/.NET

GDI 在第二个线程中使用 TGIFImage 处理泄漏

我有一个后台线程加载图像(从磁盘或服务器),目标是最终将它们传递给主线程进行绘制.当第二个线程使用 VCL 的 TGIFImage 类加载 GIF 图像时,这个程序有时在线程中每次执行以下行时会泄漏几个句柄: m_poBitmap32->Assign(poGIFImage); 也就是说,刚打开的 GIF 图像正在分配给线程拥有的位图.这些都不与任何其他线程共享,即完全本地化到线程.它与时间有关 ..
发布时间:2021-12-31 08:06:55 其他开发

创建一个跨 MPI 进程保持同步的计数器

我在使用基本的 comm 和 group MPI2 方法方面有相当多的经验,并且使用 MPI 做了相当多令人尴尬的并行模拟工作.到目前为止,我已经构建了我的代码,使其具有一个调度节点和一堆工作节点.调度节点有一个将与模拟器一起运行的参数文件列表.它使用参数文件为每个工作节点播种.工作节点运行他们的模拟,然后请求调度节点提供的另一个参数文件.运行完所有参数文件后,调度节点会先关闭每个工作节点,然后再 ..
发布时间:2021-12-30 15:49:55 C/C++开发

多参数线程

有谁知道如何将多个参数传递给 Thread.Start 例程? 我想过扩展类,但是C#Thread类是密封的. 我认为代码如下所示: ...线程标准TCPServerThread = new Thread(startSocketServerAsThread);标准服务器线程.开始(编排器,初始化成员平衡,参数,60000);...}static void startSocketSer ..
发布时间:2021-12-29 19:39:11 C#/.NET

布赖恩·戈茨 (Brian Goetz) 的不当出版物

问题已经在之前发布,但没有提供真实的例子作品.因此,Brian 提到在某些条件下,AssertionError 可能发生在以下代码中: 公共类持有人{私人国际n;公共持有人(int n){ this.n = n;}公共无效 assertSanity() {如果 (n!=n)throw new AssertionError("此语句为假");}} 当持有人像这样不正确地发布时: class s ..
发布时间:2021-12-28 23:12:28 Java开发

锁定可变对象 - 为什么它被认为是一种不好的做法?

请参阅此答案.它说: 六个非常糟糕的例子; ... 锁定可变字段.例如同步(对象){ 对象 = ...;} 锁定可变字段有什么问题?如果 object 被声明为 final 但不是一个不可变的类怎么办? 解决方案 这是个坏主意,因为如果另一个线程更改了临界区中的引用,线程将不再看到相同的引用,因此它们不会同步在同一个对象上,从而不受控制地运行.示例: 同步(锁 ..

不要同时在两个线程之间共享同一个套接字

我有大约 60 个套接字和 20 个线程,我想确保每个线程每次都在不同的套接字上工作,所以我根本不想在两个线程之间共享同一个套接字. 在我的 SocketManager 类中,我有一个后台线程,它每 60 秒运行一次并调用 updateLiveSockets() 方法.在 updateLiveSockets() 方法中,我遍历我拥有的所有套接字,然后通过调用 SendToQueue 类的 s ..

MySQL 连接器/JDBC 线程安全吗?

标准的 MySQL JDBC 驱动程序线程安全吗?具体来说,我想在所有线程中使用单个连接,但每个语句只会在单个线程中使用.是否有某些情况是安全的,而另一些则不安全?您在这里有什么体验? 解决方案 每个连接开始/提交事务.除非您正在做一些非常具体的事情(老实说,我真的想不出一个例子来证明这是合理的),否则最好使用连接池和每个线程的连接. ..
发布时间:2021-12-28 23:09:24 Java开发

为什么 ThreadGroup 受到批评?

我知道当前使用 Executors 而不是 ThreadGroup 的做法: 通常首选的处理线程的方式 从线程等中捕获异常... 但是,ThreadGroup 固有的缺陷是什么(我听说过对该类的模糊批评)? 感谢您的回答. 附注.这个似乎没有来回答这个问题. 解决方案 这在 Effective Java 第二版,第 73 条. 线程组最初被设想为一种机制出于 ..
发布时间:2021-12-28 23:06:19 Java开发

如何使用 rand_r 以及如何以线程安全的方式使用它?

我正在尝试学习如何使用 rand_r,并在阅读了这个问题后 我仍然有点困惑,有人可以看看并指出我遗漏了什么吗?据我了解, rand_r 使用一个指向某个值(或一块具有某个初始值的内存)的指针,并在每次调用时使用它来生成新数字.每个调用 rand_r 的线程都应该为它提供一个唯一的指针(或一块内存),以获得不同线程之间的“实际随机"数字.这就是为什么: int globalSeed;//线程1ra ..
发布时间:2021-12-28 23:05:06 C/C++开发

如何将非静态数据发送到 Rust 中的线程,在本例中是否需要它?

我正在尝试使用 Rust 中的一些堆数据启动一个新线程,但由于需要数据具有 'static 生命周期,我收到了一堆错误.我已经把我的程序倒退了,但遇到了问题. 使用 std::sync::Arc;使用 std::thread;结构线程数据{vector_of_strings: Vec,术语:Vec,商:使用,}fn perform_search(slice: &[St ..
发布时间:2021-12-28 23:00:53 其他开发