在函数中检查当前线程是否可以?
例如,如果某些非线程安全的数据结构仅由一个线程更改,并且存在一个由多个线程调用的函数,则根据当前线程使用单独的代码路径会很有用。如果当前线程是改变数据结构的线程,直接在函数中改变数据结构是可以的。但是,如果当前线程是其他线程,则必须延迟实际更改,以便在执行操作安全时执行。
或者,使用一些作为函数参数的 bool 值来分隔不同的代码路径会更好吗?
或者做一些完全不同的事情?
你怎么看?
最佳答案
你说的不太对。您说过非线程安全的数据结构只能由一个线程更改,但在下一句话中您谈到延迟其他线程对该数据结构所做的任何更改。下定决心。
一般来说,我建议使用关键部分或互斥体来包装对数据结构的访问。
关于c++ - 检查函数内的当前线程是否正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3703398/