繁体   English   中英

C ++多线程指针指向的指针

[英]C++ multithreaded pointer to pointer to pointer

假设我有一个指向该指针的指针,即int *** ptr,它保存一个三维数组。 根据CPU,我希望大约有三个线程同时读写我的指针。 为了简单起见,将不重新定义ptr(如果我不得不重新定义指针,我仍然想知道如何处理多线程)。 我想并发写入指针而不必使用互斥体,因为它会阻塞其他线程。 我该怎么做? 我仍然不太了解原子模板分类...

谢谢! :)

这取决于线程的运行方式。

所有线程都可以从给定位置读取而不会发生冲突,但是这是问题所在(同时更改值(同时更改值,在更改时读取值或使用已更改的读取值))。

如果您已确保在线程之间不更改任何值(例如,线程1写入ptr [0] [0] [x],线程2 ptr [0] [1] [x],线程3 ptr [0) ] [2] [x]),实际上您根本不需要执行任何互斥。

如果没有保证,则必须互斥每次读取和写入值。

重新定义实际上是在更改指针值。 因此,如果只有1个线程必须处理要更改的指针值,则不必担心。 否则,每次读取和写入时都使用互斥锁。 因此,如果只有1个线程访问ptr [0] [0],并且您需要调整ptr [0] [0]的大小,那么您就很高兴了。

如果没有保证,则必须互斥每次读取和写入值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM