In general, the debugger detects all overlapping accesses by different threads to the same data. It also tries to take synchronization between threads into account.
Supported are:
You can use data sharing detection on native threads, OpenMP* threads, threads that make use of Intel® TBB, and Intel® Cilk™ Plus applications.
The debugger may detect shared accesses for threads that are properly synchronized if it does not understand the synchronization mechanism. On Windows OS and Linux* OS, you can try to use Suppress filters to ignore such unwanted detections. Filters are stored per solution, so you don’t have to repeat creating these filters for every debug run.