thread-safety相关内容

python zipfile 线程安全吗?

在django项目中,我需要为db中的对象生成一些pdf文件.由于每个文件的生成需要几秒钟的时间,所以我使用 celery 异步运行任务. 问题是,我需要将每个文件添加到 zip 存档中.本来打算用python的zipfile模块,但是不同的任务可以在不同的线程中运行,我想知道如果两个任务同时尝试将一个文件添加到存档中会发生什么. 以下代码线程安全吗?我在 python 的官方文档中找 ..
发布时间:2021-10-05 19:15:03 Python

线程安全静态变量

我读过静态变量的线程安全,我理解并同意用它但是 java se 7 程序员考试 804 书中有人可以给我解释一下 public void run() {同步(SharedCounter.class){SharedCounter.count++;}} 然而,这段代码效率低下,因为它获取和释放每次锁定只是为了增加计数的值. 谁能给我解释一下上面的引用 解决方案 代码并不是特别低 ..
发布时间:2021-09-07 18:40:51 Java开发

“线程安全"的关系与“原子操作"

从这里的 MSDN (http://msdn.microsoft.com/en-us/library/aa691278(v=vs.71).aspx) 可以看到基本类型如int、byte……都是可读/可写的原子类型.所以我想知道因为它们都是“原子的": “原子操作"和“锁"是什么关系?在我看来,如果操作是“原子的",我们就不再需要锁了,因为它们必须是“线程安全的",对吗? 无论如何,网站 ..
发布时间:2021-09-07 18:40:49 C#/.NET

静态内联函数线程安全吗?

场景:我写了一大段代码,运行在 2 个并行线程上,它们在代码方面是相同的,只是处理不同的数据.我看到了不确定的结果.如果我禁用 2 个线程之一,结果将变得确定.在这段代码中,我使用了一些静态内联函数(主要原因:它们是我在这里和那里需要的小函数,我只是在需要它们的翻译单元中复制代码),我想了解它们是否可能是我的问题的一个可能原因. C 中的静态内联函数是线程安全的吗?反过来说,如果它们内部没有 ..
发布时间:2021-09-07 18:40:46 其他开发

关于异步方法和线程

异步函数的幕后究竟发生了什么? 它是否打开一个新线程并让操作系统启动并运行它? 如果是这样,是否会导致死锁或其他线程问题? 以下是异步方法的示例: var fs = require('fs')var 文件 = process.argv[2]fs.readFile(文件,函数(错误,内容){var lines = contents.toString().split('\n').l ..
发布时间:2021-09-07 18:40:43 其他开发

VB.NET Form.Show 从另一个线程挂起的窗体

我的网络代码有一系列方法被调用.从网络线程触发一个事件.在这个事件中,我从一个单例类中连接到它,我将消息路由到表单级别的方法,它们在表单加载时注册以处理他们关心的某些消息.在这些表单消息挂钩中,我需要关闭当前表单(我能够做到),但还要显示一个不同的表单(这给我带来了麻烦). 新的表格显示出来了,但它挂了/没有更新.我确定这与该表单有关,因为它的 .Show() 基本上是从另一个线程(某种)调 ..
发布时间:2021-09-07 18:40:40 其他开发

Spring bean singleton bean:多线程访问

设计模式中的单例 bean 应该是单实例的. 因此,如果一个线程的执行正在执行阻塞一系列 bean(比如 @Controller 然后是 @Service 然后是简单 bean)一个接一个 如果许多其他具有不同功能但使用相同系列 bean 的并发线程运行会发生什么 - 我的意思是可能会出现数据/值的任何冲突情况,或者 Spring Singleton 是线程安全的? 如果不一样怎么解 ..
发布时间:2021-09-07 18:40:37 其他开发

如何在 Sinatra 应用程序 (+unicorn) 中存储/访问/更新线程安全变量?

我想在我的 sinatra 应用程序中以线程安全的方式存储和更新 Enum.我用独角兽.我尝试了以下方法: #!/usr/bin/ruby需要'sinatra'$locked = 假$num = 0类应用程序 视图只显示 $num ;) 我使用 unicorn(4 个工人)启动了应用程序,并使用我的浏览器访问了 http://localhost:8080/winner.我多次点击刷新,但 ..
发布时间:2021-09-07 18:40:35 其他开发

任意可克隆数据的线程安全持有者

我有一个带有公共 clone() 方法的 SomeMutableData 类.我想确保没有线程看到不一致的状态(假设实例将仅使用持有者传递).我认为使用同步是最安全的可能,对吗? public final class ThreadSafeHolder {公共 ThreadSafeHolder(SomeMutableData 数据) {存储数据(数据);}公共同步 SomeMutableData ..
发布时间:2021-09-07 18:40:32 Java开发

线程 - 确保线程完成

已解决:http://msdn.microsoft.com/en-us/library/ff431782(v=VS.92).aspx 我有以下课程,它将为我提供 WP7 中的当前位置: 公共课位置{私人 GeoCoordinateWatcher 观察者 = null;公共地理坐标当前位置{获取;放;}公开职位(){获取当前位置();}私有无效获取当前位置(){watcher = new G ..
发布时间:2021-09-07 18:40:29 C#/.NET

从另一个线程访问 servlet 作用域 bean

我正在使用来自“访问线程内的作用域代理bean"的答案.但是,我看到了涉及 RequestAttributes 对象的罕见死锁.死锁的主要原因是对象中的 synchronized (this.sessionAttributesToUpdate) 语句与 servlet 会话哈希映射之间.通常为每个请求创建对象的实例,因此它们不会发生冲突,但是如果我将对象传递给另一个线程以使用会话 bean,则会使 ..
发布时间:2021-09-07 18:40:26 Java开发

android 处理程序线程安全吗?

我正在重构一个 Android 项目.我偶然发现了一段我认为非线程安全的奇怪代码.我认为这个例子会导致随机崩溃是否正确? 公共类 SampleClass{Object foo = new Object();//foo 可以在主线程中设置为 null私有处理程序处理程序 = new Handler(){public void handleMessage(消息消息){如果 (foo == null) ..
发布时间:2021-09-07 18:40:23 移动开发

Tkinter.Tk() 和线程

Tkinter 和线程有一个有趣的问题:我有一个基于 Tkinter 的 GUI 和一些与 mainloop 一起执行的代码.如果我只做一次,它就像魅力一样.但是如果我做两次 Tkinter.Tk() 会阻塞两个线程:GUI 和 MainThread. 这是代码(灵感来自 另一个 Tkinter 与线程主题): 导入Tkinter进口螺纹导入日志logging.basicConfig(le ..

致命的 Python 错误:已跟踪 GC 对象

我使用 matplotlib 创建一些图表,使用 AGG 后端. 导入 matplotlibmatplotlib.use('AGG')导入 matplotlib.plot 作为 plt# ...定义图表视图(请求):fig = plt.figure# 用 fig 做一些事情,最后将它保存在 Django HttpResponse 中# 对象并返回 HttpResponse 对象. 现在我有一个 ..
发布时间:2021-09-07 18:40:17 Python

将 ZeroMQ 套接字移动到另一个线程

ZeroMQ 指南指出不应在线程之间共享套接字.但是,在 Pyre ZeroMQ 项目中,在 zhelper 模块在线程中创建套接字,然后在新线程中使用: def zthread_fork(ctx, func, *args, **kwargs):"""创建附加线程.附加线程获得一个 ctx 和一个 PAIR管道返回其父级.它必须监视它的管道,并在出现以下情况时退出管道变得不可读.如果出现错误,则 ..
发布时间:2021-09-07 18:40:14 Python

在等待主 UI 线程完成的单独线程上运行表单

在 .NET 4.0 中,我正在处理一个加载时间很长(大约 20 秒)的应用程序,所以我想在加载时在应用程序顶部的窗体上显示一个漂亮的滚动字幕. 由于主 UI 线程正在执行所有数据 UI 元素的加载,因此我无法在单独的线程上执行该任务,因此我最终尝试在新线程上运行该表单.我最终将这段代码粘贴在表单本身中,让它在一个新线程中显示出来,如下所示: 公共类 frmWait公共属性消息作为字符串得 ..
发布时间:2021-09-07 18:40:09 C#/.NET

GroovyShell 线程安全

该问题出现在有关 GroovyShell 的所有问题的评论中,例如 使用 GroovyShell 作为“表达式评估器/引擎";(或:如何重用 GroovyShell).这并不奇怪,因为 API 的设计似乎根本没有涵盖这个主题.不幸的是,这从未被明确讨论过. 紧凑形式的问题: 静态初始化: final GroovyShell shell = new GroovyShell();最终脚本 ..
发布时间:2021-09-07 18:40:06 Java开发

List.Count 是否需要 ReaderWriterLockSlim.EnterReadLock?

someList.Count 在 C# 中是线程安全的吗? 性能对我来说很重要,由于主程序的复杂性,我不能使用其他线程安全的集合 我知道还有很多其他情况,但只关注这个简单的问题: _lock.EnterReadLock 对于 someList.Count 是否必要,因为它可能是一个原子属性? private ReaderWriterLockSlim _lock;私人列表_som ..
发布时间:2021-09-07 18:40:04 C#/.NET

C++20 中的原子智能指针和互斥锁

如果我想从多个线程写入/读取一个对象,即使我在 C++11 中使用 shared_pointer,我也必须使用额外的互斥锁来保证线程安全.如果我使用 C++20 中引入的 atomic_shared_pointer,这仍然适用吗? 问候 解决方案 在考虑 shared_ptr 的原子性时,可以考虑三层. 引用计数的原子性.也就是说,您在不同的线程上有两个 shared_ptr ..
发布时间:2021-09-07 18:40:01 C/C++开发

并行运行测试时使用 Console.SetOut 是否明智?

我想测试一个控制台应用程序,按照此处所述重定向标准输出和标准输入:在测试设置和拆卸中重定向 Console.Out 这是代码: private StringWriter _sw;私人 StringReader _sr;[设置]公共无效设置(){_sw = 新的 StringWriter();Console.SetOut(_sw);_sr = new StringReader("100"); ..
发布时间:2021-09-07 18:39:58 C#/.NET