thread-safety相关内容

AtomicInteger 线程安全

我怎样才能实现这里的 while 循环总是精确执行 100 次.当我执行代码时,在极少数情况下它会在控制台上打印 99 或 98 行而不总是 100,我不明白. import java.util.ArrayList;导入 java.util.concurrent.atomic.AtomicInteger;公共类 Print 实现 Runnable {static AtomicInteger at ..
发布时间:2021-09-07 18:38:54 Java开发

如何更新 ConcurrentHashMap 线程安全中的值

我需要更新 ConcurrentHashmap 中的值,但我不确定如何安全地执行此线程. Hashmap 是一个 ConcurrentHashMap,我需要获取自定义类的实例,对其执行一些操作,然后将更新的值放回去. 有什么办法可以将这个 get-alter-put 操作与原子操作结合起来吗? 提前致谢 解决方案 您可以使用 ConcurrentHashMaps comp ..
发布时间:2021-09-07 18:38:51 Java开发

ThreadLocal 和 SimpleDateFormat 数组

使用与最近的问题中描述的模式非常相似的模式,对于多线程应用程序,我得到了奇怪的日期值(例如,像 2025 或 2035 这样的年份,显然源数据中不存在这样的值).似乎发生了并发问题. 源代码看起来像 //各种 Java DateFormat 模式,例如“yyyy-MM-dd".private static final String[] DATE_PATTERNS = new String[ ..
发布时间:2021-09-07 18:38:49 Java开发

这是否使用字典线程安全?

这是我的两个方法变体,它返回一个与枚举值相关联的字符串(保存在字典中).第一个变体较慢,但线程安全,第二个变体更快,但我不知道它是否是线程安全的.第一: string GetStringForEnum (SomeEnum e){字符串 str = null;lock (someDictionary)//someDictionary 不在其他任何地方使用(仅在此方法中){ if (!someDic ..
发布时间:2021-09-07 18:38:45 C#/.NET

tkinter 的 `after` 方法线程安全吗?

由于 tkinter 不是线程安全的,我经常看到人们使用 after 方法将一些代码排队以在主线程中执行.举个例子: 导入 tkinter 作为 tk从线程导入线程def change_title():root.after(0, root.title, 'foo')根 = tk.Tk()线程(名称=“工人",目标=更改标题).开始()root.mainloop() 因此,我们不是在 worke ..
发布时间:2021-09-07 18:38:43 Python

2010年java并发修改异常崩溃

绘制一些存储在 ArrayList 中的粒子.此代码工作正常: super.paintComponent(g);对于(粒子b:粒子Arr){g.setColor(b.getColor());g.fillOval(b.getXCoor() + 5,b.getYCoor(),b.getParticleSize(),b.getParticleSize());} 但是这段代码会抛出一个并发修改异常 ..
发布时间:2021-09-07 18:38:40 Java开发

线程安全梅森捻线机

寻找线程安全的随机生成器我找到了一个mersenne twister生成器类,作者说如果线程安全: http://www.umiacs.umd.edu/~yangcj/mtrnd.html 但是在研究了代码之后,我看不出它是否是安全线程.那里没有任何类型的锁或任何类似于锁变量的东西. 这个实现真的是线程安全的吗?如果是这样,魔法是什么? 解决方案 它似乎是线程安全的,因为 ..
发布时间:2021-09-07 18:38:31 其他开发

C++ - 传递给线程的数据是否应该是易失性的?

在 Microsoft Visual C++ 中,我可以调用 CreateThread() 通过使用一个 void * 参数启动一个函数来创建一个线程.我将指向结构的指针作为该参数传递,并且我看到很多其他人也这样做. 我的问题是,如果我传递一个指向我的结构的指针,我如何知道在调用 CreateThread() 之前结构成员是否已实际写入内存?有没有保证它们不会被缓存?例如: struct ..
发布时间:2021-09-07 18:38:28 C/C++开发

如何在 PHP 中禁用线程安全?

我使用的一些软件要求我禁用线程安全.我在 Windows 服务器上工作.从我在别处读到的,我不能只在 .ini 文件中配置它.这是真的?如果是这样,我将如何编译它以关闭线程安全? 解决方案 您必须在禁用 ZTS 的情况下编译 PHP(编译标志 --disable-zts)或 下载二进制文件 禁用 ZTS. 这在某些 Web 服务器中无法正常工作,即在同一进程中同时处理多个 PHP 脚 ..
发布时间:2021-09-07 18:38:24 PHP

线程安全在 PHP 上下文中意味着什么?

可能的重复: PHP 中什么是线程安全或非线程安全 某些东西是或不是线程安全的意味着什么? 例如,PHP 中的 setlocale() 不是线程安全的: 区域设置信息是按进程维护的,而不是按线程维护的.如果您正在多线程服务器 API(如 IIS 或 Apache)上运行 PHP在 Windows 上,您可能会遇到区域设置的突然变化,同时脚本正在运行,尽管脚本本身从未调用过设置区 ..
发布时间:2021-09-07 18:38:21 PHP

可以安全地在同一对象上使用 lock 和 monitor 吗?

我有以下情况:我想相互排除对对象的访问. 到目前为止,我通常会使用锁对象 object lockObject = new object();...方法 1:锁定(锁定对象){ CODE1 } 现在我还有一个可以从另一个线程调用的方法.不应该在未知时间内被阻塞,而是应该在定义的时间内给出答案. 在这种情况下,我将使用监视器,例如 method2:尝试{Monitor.TryEnte ..
发布时间:2021-09-07 18:38:18 C#/.NET

如何以线程安全的方式增加(添加值)十进制?

我有一个可同时从多个线程访问的 decimal 变量.Interlocked 类函数根本不支持小数,所以我剩下的唯一方法是使用 lock(){}.这似乎有点矫枉过正. 是否有其他方法以线程安全的方式为 decimal 变量添加值? 解决方案 使用锁并不过分.它是必需的. 像 System.Decimal 这样的结构类型从来都不是原子的,它也不适合原生 cpu 字长.这就是 In ..
发布时间:2021-09-07 18:38:16 C#/.NET

Swift 原子布尔值

我正在尝试围绕 iOS OSTestAndSet() 和 OSTestAndClear() 函数创建一个包装器,以便与基于以下 GitHub 代码: class AtomicBoolean {私有变量 val:字节 = 0///设置值,并返回前一个值.///test/set 是一个原子操作.func testAndSet(value: Bool) ->布尔{如果值{返回 OSAtomicTest ..
发布时间:2021-09-07 18:38:12 移动开发

VB.NET RaiseEvent,线程安全?

是 RaiseEvent 线程安全吗? 在 C# 中编写 if (event != null){事件调用();} 并且 C# 代码不是线程安全的.... 解决方案 如果我需要做线程安全事件,我这样写: 课程测试公共事件点击(ByVal sender As Object, ByVal e As EventArgs)公共事件 MouseIn(ByVal sender As Obje ..
发布时间:2021-09-07 18:38:07 其他开发

运行线程时,我的 Try Catch 块应该在哪里?

以这个线程: Thread thread = new Thread(delegate(){//代码});线程.开始(); 应该在thread.Start();周围还是里面: Thread thread = new Thread(delegate(){尝试{//代码}捕获(异常){//代码}}); 解决方案 放在里面还是放在外面完全不同. 如果将它们放在 thread.Start() ..
发布时间:2021-09-07 18:37:58 C#/.NET

IN SQL Server 是 CLR 线程安全的

我在 SQL Server 和 Exchange Web 服务之间的 CLR 中有一个接口,用于在应用程序之间同步和发送电子邮件.在测试中,它可以正常工作(ed)没有任何问题;我们在生产环境中看到了一些零星的问题,其中较长的网络服务任务似乎重叠了. 我的问题很简单,我无法通过阅读 MSDN 上的 CLR 详细信息来决定 - CLR 线程安全还是开箱即用. 如果不是,那么调用线程安全的 ..
发布时间:2021-09-07 18:37:54 数据库