c++ - 检查函数内的当前线程是否正常?

标签 c++ multithreading

在函数中检查当前线程是否可以?

例如,如果某些非线程安全的数据结构仅由一个线程更改,并且存在一个由多个线程调用的函数,则根据当前线程使用单独的代码路径会很有用。如果当前线程是改变数据结构的线程,直接在函数中改变数据结构是可以的。但是,如果当前线程是其他线程,则必须延迟实际更改,以便在执行操作安全时执行。

或者,使用一些作为函数参数的 bool 值来分隔不同的代码路径会更好吗?

或者做一些完全不同的事情?

你怎么看?

最佳答案

你说的不太对。您说过非线程安全的数据结构只能由一个线程更改,但在下一句话中您谈到延迟其他线程对该数据结构所做的任何更改。下定决心。

一般来说,我建议使用关键部分或互斥体来包装对数据结构的访问。

关于c++ - 检查函数内的当前线程是否正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3703398/

相关文章:

c++ - 为什么我的模型没有出现在 QListView 中?

android - RxAndroid ViewObservable NetworkOnMainThreadException

java - Cloneable 的 super.clone() 是线程安全的方法吗?

java - JSCH 和多线程 java 应用程序的问题

c++ - 对象切片会破坏封装吗?

c++ - 如何访问模板包参数的模板参数

c++ - Knuth 置换算法奇怪的行为

c++ - Qt:qobject_cast 的段错误

Java 线程中断标志被清除

c# - 如果我使用 Spring AOP 横切关注点 + log4net 进行日志记录,如何结束单例对象队列