thread-safety相关内容

RestTemplate 线程安全吗?

Spring RestTemplate 是线程安全的吗?那是 是一个 RestTemplate 一个多个连接可以安全共享的策略对象.或 是一个 RestTemplate 连接对象(如数据库连接),在使用时不能共享,并且需要为每个连接重新创建或池化. 解决方案 RestTemplate 线程安全(强调): 从概念上讲,它与 JdbcTemplate、JmsTemplate 以及 ..
发布时间:2021-12-03 17:25:57 Java开发

strtok 函数线程安全

我花了一些时间调试一个导致分段错误的程序.该错误非常不确定且断断续续,这很烦人.我将范围缩小到 strtok() 的调用.我怀疑是调用 strtok() 在两个不同的线程中拆分字符串导致了分段错误.我可以在两个不同的线程中调用 strtok() 吗? 谢谢. 解决方案 strtok() 不可重入,因此不应在线程应用程序中使用它,请使用 strtok_r() 代替. ..
发布时间:2021-12-03 13:49:52 服务器开发

C++11 中的局部静态变量初始化线程安全吗?

我知道这是一个经常被问到的问题,但由于有很多变体,我想重新陈述它,并希望有一个反映当前状态的答案.类似的东西 记录器&g_logger() {静态记录器 lg;返回 lg;} 变量lg的构造函数是否保证只运行一次? 我从以前的答案中知道,在 C++03 中,这不是;在 C++0x 草案中,这是强制执行的.但我想要一个更明确的答案 在 C++11 标准(非草案)中,线程安全的初始化行 ..
发布时间:2021-12-01 15:21:49 C/C++开发

自动化 InvokeRequired 代码模式

我痛苦地意识到人们需要在事件驱动的 GUI 代码中编写以下代码模式的频率,其中 private void DoGUISwitch() {//通过异常城市巡航object1.Visible = true;object2.Visible = false;} 变成: private void DoGUISwitch() {如果(object1.InvokeRequired){object1.Inv ..
发布时间:2021-12-01 09:22:15 C#/.NET

收藏被修改;枚举操作可能不会执行

我无法深究这个错误的根源,因为当附加调试器时,它似乎没有发生. 集合被修改;枚举操作可能不会执行 下面是代码. 这是一个 Windows 服务中的 WCF 服务器.只要有数据事件(随机间隔,但不是很频繁 - 每天大约 800 次),服务就会调用方法 NotifySubscribers(). 当 Windows 窗体客户端订阅时,订阅者 ID 被添加到订阅者字典中,当客户端取 ..
发布时间:2021-12-01 09:03:53 C#/.NET

对 WCF 通道的线程安全访问

我有一个 ASP.NET 应用程序,它使用对 3rd 方/异地支付处理器的“服务引用".我从支付处理器下载的示例代码包括以下内容: 公共类 SoapAPIUtilities{私有静态 CustomerProfileWS.Service 服务 = null;公共静态 CustomerProfileWS.Service 服务{得到{如果(服务 == 空){service = new Custome ..
发布时间:2021-11-30 18:07:49 C#/.NET

具有“线程安全"读/写操作的 Delphi 数据类型列表?

'boolean' 变量对于从任何线程读取和写入是线程安全的吗?我已经看到一些新闻组引用说它们是.是否还有其他数据类型可用?(枚举类型,也许是短整数?) 最好有一个可以从任何线程安全读取的所有数据类型的列表,以及另一个也可以在任何线程中安全写入的列表,而不必求助于各种同步方法. 解决方案 请注意,您基本上可以使 delphi 中的所有内容都变为非线程安全的.虽然其他人提到布尔值的对齐 ..
发布时间:2021-11-30 14:57:37 其他开发

Objective-C 中的原子属性与线程安全

在我读过的大多数讨论中,它表明使属性原子化并不能保证它是线程安全的,它只是保证返回的值不会因为一个对象写入而成为垃圾它和另一个试图同时阅读它. 我知道这不是线程安全的,因为第三个对象可能正在写入它,虽然访问它的对象不会返回垃圾,但并不完全确定它会在多个对象写入时返回哪个值同时,它可能会得到它们的任何值. 所以当我们说它不会返回垃圾时,垃圾是否是指如果一个对象是非原子的并且一个对象试图访 ..
发布时间:2021-11-30 14:55:48 C/C++开发

c# 中的原始数据类型是原子的(线程安全的)吗?

例如,多线程时是否需要锁定bool值? 解决方案 没有原子类型这样的东西.只有操作可以是原子的. 读取和写入适合单个字的数据类型(在 32 位处理器上为 int,在 64 位处理器上为 long)在技术上是“原子的"",但抖动和/或处理器可以决定对指令重新排序,从而产生意外的竞争条件,因此您需要使用 lock 序列化访问,使用 Interlocked 类写入(在某些情况下读取),或声 ..
发布时间:2021-11-30 14:54:59 C#/.NET

原子地执行代码块

你会如何回答以下问题? java 类的方法包含一段代码,该代码块必须是原子地执行.解释,使用适当的伪代码,你如何将确保此代码块以原子方式执行 我会通过制作方法来实现这一点吗.. public final AtomicInteger x = new AtomicInteger(0); 然后确保返回 get 语句: x.get() 如果我想增加 x 的值,我会这样做吗? x.ge ..
发布时间:2021-11-30 14:51:20 Java开发

在 MySQL 中增加一个字段是原子的吗?

我正在制作一个网站,我想在标准 MyISAM 表中增加一个计数器. 简化示例: UPDATE 票数 SET num = num + 1; 如果多个连接执行相同的查询,这会导致问题吗,或者 MySQL 会处理它并锁定表或其他东西以确保没有冲突吗? 解决方案 MyISAM 表使用表级锁定.这意味着在执行更新查询期间将锁定整个表.所以你的简化用例的答案是:是的,这是线程安全的.但如果您 ..
发布时间:2021-11-30 14:49:50 数据库

每个 memory_order 是什么意思?

我读了一章,但不太喜欢.我仍然不清楚每个内存顺序之间的区别是什么.这是我目前的推测,在阅读了更简单的 http://en.cppreference.com/w/cpp/atomic/memory_order 以下内容有误,请勿学习 memory_order_relaxed:不同步,但在不同原子变量中从另一种模式完成订单时不会被忽略 memory_order_consume:同步读取这 ..
发布时间:2021-11-30 14:48:49 C/C++开发

IEnumerable Linq 方法线程安全吗?

我想知道 Linq 扩展方法是否是原子的?或者我是否需要在任何类型的迭代之前lock任何跨线程使用的IEnumerable对象? 将变量声明为 volatile 是否对此有任何影响? 总而言之,以下哪个是最好的线程安全操作? 1- 没有任何锁: IEnumerable_objs =//...var foo = _objs.FirstOrDefault(t =>//一些条件 2 ..
发布时间:2021-11-30 14:47:59 C#/.NET

SSE指令:哪些CPU可以做原子16B内存操作?

考虑 x86 CPU 上的单个内存访问(单个读取或单个写入,而不是读取 + 写入)SSE 指令.该指令正在访问 16 个字节(128 位)的内存,并且访问的内存位置对齐到 16 个字节. 文档“英特尔® 64 位架构内存订购白皮书"指出,对于“读取或写入地址在 8 字节边界上对齐的四字(8 字节)的指令",内存操作似乎作为单个内存执行访问与内存类型无关. 问题:是否存在 Intel/A ..
发布时间:2021-11-30 14:44:44 其他开发

System.Lazy T具有不同的线程安全模式

.NET 4.0 的 System.Lazy 类通过枚举 LazyThreadSafetyMode,我将其总结为: LazyThreadSafetyMode.None - 不是线程安全的. LazyThreadSafetyMode.ExecutionAndPublication - 只有一个并发线程会尝试创建底层值.成功创建后,所有等待的线程将收到相同的值.如果在创建过程中发生未处理的异常 ..
发布时间:2021-11-26 10:28:39 C#/.NET

Java 中的线程安全 multiton

给定以下多重: public class Multiton{private static final Multiton[] 实例 = new Multiton[...];私人 Multiton(...){//...}public static Multiton getInstance(int which){如果(实例[哪个] == null){实例[which] = new Multiton(. ..
发布时间:2021-11-25 20:53:42 Java Web开发

为什么局部变量在 Java 中是线程安全的

我正在阅读 Java 中的多线程,我遇到了这个 局部变量在 Java 中是线程安全的. 从那时起我一直在思考局部变量如何/为什么是线程安全的. 谁能告诉我. 解决方案 当您创建一个线程时,它将创建自己的堆栈.两个线程将有两个堆栈,一个线程永远不会与其他线程共享其堆栈. 程序中定义的所有局部变量都将在堆栈中分配内存(正如 Jatin 所评论的,这里的内存意味着,对象的 ..
发布时间:2021-11-25 20:20:33 Java Web开发

HttpSession 线程安全,set/get 属性线程安全操作吗?

此外,被设置的对象是否必须是线程安全的,以保证我们知道会话中存储的对象的状态是已知的. 另外,我在网上阅读了一些建议使用的内容: 同步(会话){session.setAttribute("abc", "abc");} 这是一个有效的建议吗? 解决方案 不,它们不是线程安全的,根据 IBM - Java 理论与实践:所有有状态的 Web 应用程序都被破坏了吗?.您需要同步. ..
发布时间:2021-11-25 19:47:45 Java Web开发