thread-safety相关内容

SqlConnection 线程安全?

我有一个 Log 类,它将日志放入 Windows 日志和 SQL 表中.为了优化我的代码,我只想使用一个SqlConnection. 在 MSDN 中,它说:此类型的任何 public static(在 Visual Basic 中共享)成员都是线程安全的.不保证任何实例成员都是线程安全的. 我的问题是: private static readonly SqlConnection ..
发布时间:2021-12-13 20:13:22 C#/.NET

限制 javafx gui 更新

我在随机时间以高频率接收数据对象,并且需要使用这些更新 JavaFX GUI.但是,我不想用大量的可运行对象填充 javafx 事件队列(我使用 Platform.RunLater). 我一直在思考如何最好地实现节流算法. 是否最好有一个单独的 GUIUpdater 线程来检查例如新对象的阻塞队列,然后休眠 30 毫秒,然后再次检查,无限循环?在那种情况下,阻塞队列是最佳数据结构吗?请 ..
发布时间:2021-12-13 10:38:14 Java开发

线程安全性的单元测试?

我写了一个类和许多单元测试,但我没有使它线程安全.现在,我想让类线程安全,但为了证明它并使用 TDD,我想在开始重构之前编写一些失败的单元测试. 有什么好办法吗? 我的第一个想法是创建几个线程并让它们都以不安全的方式使用该类.用足够多的线程做足够多的时间,我一定会看到它坏掉. 解决方案 有两种产品可以帮助您: 微软国际象棋 Typemock Racer 两者都检查 ..
发布时间:2021-12-09 19:13:54 C#/.NET

哪些 Swing 组件方法是线程安全的?

根据Swing教程: 某些 Swing 组件方法在 API 规范中被标记为“线程安全";这些可以从任何线程安全地调用.所有其他 Swing 组件方法都必须从事件分派线程中调用.忽略此规则的程序在大多数情况下可能会正常运行,但会出现难以重现的不可预测的错误. 但是这些标记为“线程安全"的 Swing 组件方法是什么?真的有吗? 更新/赏金: 是否有完整列表的线程安全摆动方法? ..
发布时间:2021-12-09 18:13:28 Java开发

我们应该使用 EventQueue.invokeLater 来更新 Java 桌面应用程序中的任何 GUI 吗?

我知道通过使用这个方法,runnable 参数被提交到系统EventQueue.但是是否应该使用这种方法来完成所有 GUI 更新?我的意思是,如果我想说,更改 JButton 的文本,我是否应该使用这样的内容: java.awt.EventQueue.invokeLater(new Runnable() {公共无效运行(){jButton1.setText("更改文本");}}); 如果我应该 ..
发布时间:2021-12-09 18:00:16 Java开发

Qt C++ 在 GUI 线程之外显示图像(Boost 线程)

我正在开发一个 C++ 库,使用 VS2015 通过 Qt 实现其接口.在库方面,3 个 boost 线程 连续从 3 个文件夹加载图像.我试图在 3 个不同的 QLabel(或等效的 QWidgets)中显示这些图像,因此线程主体包含此功能,特别是通过利用 setPixmap 方法.尽管对该函数的调用受 boost 互斥锁保护,但由于线程同步,我得到了异常.在寻找解决方案时,我已经意识到 QPi ..
发布时间:2021-12-09 16:45:32 其他开发

如何利用 Qt 使 QObject 方法线程安全?

假设我们在一个 QObject 派生类中编写了一个非常量方法: class MyClass : public QObject {整数 x;民众:无效方法(int a){x = 一个;//可能还有其他事情};}; 我们想让该方法成为线程安全的:这意味着从任意线程调用它,并且从多个线程并发调用,不应引入未定义的行为. Qt 提供哪些机制/API 来帮助我们使该方法成为线程安全的? Qt ..
发布时间:2021-12-09 16:21:55 C/C++开发

PyQT 线程的最简单方法

我在 PyQt 中有一个带有函数 addImage(image_path) 的 GUI.很容易想象,当应该将新图像添加到 QListWidget 时会调用它.为了检测文件夹中的新图像,我使用带有 watchdog 的 threading.Thread 来检测文件夹中的文件更改,然后该线程调用 addImage 直接. 这会产生警告,出于线程安全的原因,不应在 gui 线程外调用 QPixma ..
发布时间:2021-12-09 16:18:00 Python

Sqlite 数据库实例线程安全吗

我有一个包含一些表的数据库.我想使用多个线程更新表.我将在所有线程中使用相同的 SQLiteDatabase 实例. 请建议这种方法是否正确.Sqlite 数据库线程安全吗?两个不同的线程是否可以同时为不同的值集更新同一个表. 解决方案 [错误:] 不,默认情况下它不是线程安全的.您应该使用与锁定相关的 SQLiteHelper 方法来提供线程安全. [编辑]:SQLiteDa ..
发布时间:2021-12-08 18:42:05 移动开发

Java 线程安全中的 volatile int 是什么?

Java 线程安全中的易失性 int 吗?也就是说,可以在不加锁的情况下安全地读取和写入吗? 解决方案 是的,您可以安全地从中读取和写入 - 但是您不能执行任何复合操作,例如安全地递增它,因为那是读取/修改/写循环.还有一个问题是它如何与对其他变量的访问进行交互. 坦率地说,volatile 的确切性质令人困惑(请参阅 JLS 的内存模型部分以获取更多详细信息) - 我个人通常会使用 ..
发布时间:2021-12-06 11:47:56 Java开发

Python 字典中的线程安全

我有一个包含字典的类 类订单簿:订单 = {'Restaurant1':无,'Restaurant2':无,'Restaurant3':无,'Restaurant4':无}@静态方法def addOrder(餐厅名称,订单):OrderBook.orders[restaurant_name] = 订单 而且我正在运行 4 个线程(每个餐厅一个),它们调用方法 OrderBook.addOrd ..
发布时间:2021-12-06 11:47:21 Python

将 stdout 和 stderr 从辅助线程重定向到 PyQt4 QTextEdit

堆栈溢出.再一次,我在迫切需要的时候来到你身边,在疯狂的边缘摇摇欲坠.这个问题——从标题中可以明显看出——是我在这里看到的其他几个问题的合并. 我有一个 PyQt 应用程序,我想将 stdout 和 stderr 流重新路由到我的 GUI 中的 QTextEdit,没有延迟. 最初,我发现以下堆栈溢出答案: https://stackoverflow.com/a/17145093/62 ..
发布时间:2021-12-06 11:33:43 Python

malloc 线程安全吗?

malloc() 函数是否可重入? 解决方案 我在某处读到,如果您使用 -pthread 进行编译,malloc 将成为线程安全的.我很确定它的实现依赖,因为 malloc 是 ANSI C 而线程不是. 如果我们在谈论 gcc: 编译和链接 -pthread 和malloc() 将是线程安全的,在 x86 上和 AMD64. http://groups.google.c ..
发布时间:2021-12-06 11:29:07 其他开发

PHP 中什么是线程安全或非线程安全?

我看到了不同的 PHP 二进制文件,例如非线程或线程安全的? 这是什么意思? 这些包有什么区别? 解决方案 需要的并发方法背景: 不同的 Web 服务器采用不同的技术来并行处理传入的 HTTP 请求.一种非常流行的技术是使用线程——也就是说,Web 服务器将为每个传入的请求创建/专用一个线程.Apache HTTP Web 服务器支持多种处理请求的模型,其中之一(称为工作 ..
发布时间:2021-12-06 11:28:38 PHP

并发散列集在 .NET 框架中?

我有以下课程. class 测试{公共哈希集Data = new HashSet();} 我需要更改来自不同线程的“数据"字段,因此我想对我当前的线程安全实现提出一些意见. class 测试{公共哈希集Data = new HashSet();公共无效添加(字符串值){锁(数据)数据.添加(瓦尔);}公共无效删除(字符串 Val){锁(数据)数据.删除(瓦尔);}} 是否有更好的解决方案, ..
发布时间:2021-12-06 11:27:55 C#/.NET

我从哪里获得线程安全的 CollectionView?

在后台线程上更新业务对象集合时,我收到此错误消息: 这种类型的 CollectionView 不支持从不同于 Dispatcher 线程的线程更改其 SourceCollection. 好的,这是有道理的.但这也引出了一个问题,CollectionView 的哪个版本支持多线程以及如何让我的对象使用它? 解决方案 以下是对 Jonathan 发现的实现的改进.首先,它在与其关联 ..
发布时间:2021-12-05 17:09:05 C#/.NET