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

0 c++ multithreading

可以检查函数内的当前线程吗?

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

或者,最好使用一些布尔值作为函数的参数来分隔不同的代码路径?

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

你怎么看?

Jim*_*som 6

你没有太多意义.您说过一个非线程安全的数据结构只能被一个线程更改,但在下一句话中,您将讨论延迟其他线程对该数据结构所做的任何更改.下定决心.

一般来说,我建议使用临界区或互斥锁包装对数据结构的访问.