我正在尝试理解c ++ 11中的线程。假设我有一个数组arr = {5,5,5,5,5},我想计算{5 ^ a ^ b,5 ^ a ^ b,5 ^ a ^ b,5 ^ a ^的值b,5 ^ a ^ b}使用两个线程,参数a或b传递给线程。我如何保证秒线程仅在第一个线程处理后才对每个术语起作用(5 ^ a ^ b和5 ^ b ^ a之间的差异)?
感谢。
答案 0 :(得分:0)
你可以在线程之间共享一个原子变量,它代表数组中最左边的索引 - 第一个线程尚未处理的元素。
使用a
操作后第一个线程中的增量索引,并在第二个线程中循环,直到index小于数组的大小。