thread-safety相关内容

boost::property_tree::ptree 线程安全吗?

我在一段代码的几个线程中使用 boosts read_json.下面是通话的简化细分.我在一个线程(有时是另一个线程)中遇到了段错误,这让我认为 read_json 不是线程安全的(或者我只是以愚蠢的方式使用它) void someclass::dojson() {使用 boost::property_tree::ptree;ptree pt;std::stringstream ss(json_ ..
发布时间:2022-01-12 16:13:02 C/C++开发

如何使静态日历线程安全

我想为一些静态方法使用日历并使用静态字段: 私有静态日历 calendar = Calendar.getInstance(); 现在我读到 java.util.Calendar 不是线程安全的.我怎样才能使这个线程安全(它应该是静态)? 解决方案 如果它不是线程安全的,你就不能做一些线程安全的东西.在 Calendar 的情况下,即使从它读取数据也不是线程安全的,因为它可以更新内部数据 ..
发布时间:2022-01-11 14:08:31 Java开发

List.iterator() 是线程安全的吗?

在 Java 中:List.iterator() 是线程安全的,即返回的迭代器是否反映了列表在任何时候的当前状态,或者只是列表在其时的状态创作? 解决方案 List.iterator() 的行为未定义或与不同的 List 实现一致. 对于 ArrayList、LinkedList,如果在迭代列表时修改了列表,则可能会得到 ConcurrentModificationException ..
发布时间:2022-01-10 14:33:38 Java开发

在单个后台线程定期修改它的同时读取 Map

我有一个类,我在 updateLiveSockets() 方法内每 30 秒从单个后台线程填充地图 liveSocketsByDatacenter ,然后我有一个方法 getNextSocket() 将被多个读取器线程调用以获取可用的活动套接字,该套接字使用相同的映射来获取此信息. 公共类 SocketManager {私有静态最终随机随机=新随机();private final Schedul ..
发布时间:2022-01-08 14:32:58 Java开发

多线程环境下的Hashmap和hashtable

我对这两个集合在多线程环境中的行为感到非常困惑. 哈希表是同步的,这意味着不会有 2 个线程同时更新它的值,对吧? 解决方案 看ConcurrentHashMaps 用于线程安全映射. 它们提供了 HashTable 的所有功能,性能非常接近 HashMap. 通过不使用地图范围的锁来获得性能,该集合默认维护一个包含 16 个锁的列表,每个锁用于锁定地图的单个存储桶.您甚 ..
发布时间:2022-01-08 14:21:50 Java开发

解释导致 HashMap.put() 执行无限循环的时机

正如许多人所注意到并遇到的那样,HashMap.put 在并发使用时会进入无限执行循环(请参阅 GRIZZLY-1207, JGRP-525,可能是 HHH-6414,和这个 SO 回答). HashMap 被明确记录为不是线程安全的.显然,正确的解决方法是使用 Map 的线程安全实现,尤其是 ConncurrentHashMap.我对导致无限循环的并发时序更好奇.我最近在使用 Java 7 ..
发布时间:2022-01-08 13:56:34 Java开发

HashMap 对于不同的键是线程安全的吗?

如果我有两个多个线程访问一个 HashMap,但保证它们永远不会同时访问同一个键,那还会导致竞争条件吗? 解决方案 在@dotsid 的回答中他这样说: 如果您以任何方式更改 HashMap,那么您的代码就会被破坏. 他是对的.如果线程使用不相交的键集,则在没有同步的情况下更新的 HashMap 将破坏 even.以下是只是一些1可能出错的地方. 如果一个线程执行 put ..
发布时间:2022-01-08 13:40:22 Java开发

javafx,从另一个线程更新 ui

我有一个 javafx 应用程序和一个工作线程,通过 javafx.concurrent.Task 实现,它执行一个漫长的过程,即压缩和上传一组文件. 我已通过 progressProperty 将任务进度连接到进度条. 除此之外,我还希望将正在处理的项目的详细状态报告到 ui 中.也就是说,正在处理的文件的名称及其大小以及单个文件进程可能出现的任何错误. 无法从工作线程中使用这些信息更新 ..
发布时间:2022-01-08 12:28:42 Java开发

AsyncTask 方法调用中的 Toast 问题

大家好, 我有一个 AsyncTask 将一些数据发布到服务器.它通过调用我从 doInBackground 编写的静态方法来实现.当我运行 AsyncTask 时,我将调用 execute() 的活动的上下文发送到我的静态方法,因为如果在与服务器交谈时出现问题,它需要它来制作 Toast.但是,在静态方法中制作 Toast 时出现此错误: 04-21 12:49:16.689:错误/Andr ..
发布时间:2022-01-07 22:14:26 移动开发

Handler、Runnable 和 Threads 之间有什么区别?

Handler、Runnable 和 Threads 有什么区别? 当我使用 android 时,我需要一些东西在后台运行.我使用线程来运行它.通常我会写一个类来扩展Thread并实现run方法. 我还看到了一些实现 runnable 并将 runnable 传递给线程的示例. 但是我还是很困惑.谁能给我一个清楚的解释? 如果可以在 Thread 的 run 方法中编写后台 ..

C#,是否有“线程安全"之类的东西?溪流?

我正在将进程的输出重定向到我稍后阅读的流阅读器中.我的问题是我正在使用多个线程,这些线程应该有这个流的单独实例.当我去读入这个流时,线程混淆并开始奇怪地执行. 是否有制作线程安全流这样的东西? 编辑:我在流阅读器上的 ReadToEnd 上加锁,以及我所做的那一行: reader = proc.StandardOutput; 解决方案 框架中内置了 SynchronizedStre ..
发布时间:2022-01-07 20:27:11 C#/.NET

与 win32 CRITICAL_SECTION 相比的 std::mutex 性能

std::mutex 的性能与 CRITICAL_SECTION 相比如何?是一样的吗? 我需要轻量级同步对象(不需要是进程间对象)是否有任何 STL 类接近 CRITICAL_SECTION 除了 std::mutex ? 解决方案 请看我在答案末尾的更新,自 Visual Studio 2015 以来情况发生了巨大变化.原始答案如下. 我做了一个非常简单的测试,根据我的测量 ..
发布时间:2022-01-07 11:18:44 C/C++开发

只读操作的 std::map 线程安全

我有一个 std::map 用于将值(字段 ID)映射到人类可读的字符串.当我的程序在启动任何其他线程之前启动时,此映射会被初始化一次,之后就再也不会被修改了.现在,我为每个线程提供了这个(相当大的)映射的自己的副本,但这显然是内存使用效率低下并且会减慢程序启动速度.所以我想给每个线程一个指向映射的指针,但这引发了一个线程安全问题. 如果我所做的只是使用以下代码读取地图: std::str ..
发布时间:2022-01-07 11:15:38 C/C++开发

对 Javascript 方法的调用是线程安全的还是同步的?

我还是 Javascript 的新手.我正在开发一个简单的页面,我在其中单击一个按钮以获取 servlet 上的值并显示它.它运行良好,除非我疯狂地点击按钮.有时,显示结果为空. 我想知道这是否是由同时调用以下相同函数引起的: function loadXMLDoc2(retr) {var xmlhttp;如果(window.XMLHttpRequest){//IE7+, Firefox, ..
发布时间:2022-01-06 23:06:40 前端开发