在多线程程序

时间:2016-08-31 03:56:34

标签: c++ multithreading synchronization

我有3个功能:

  1. ReadInput(读取字符串数组)。
  2. 处理字符串(反转字符串)[MULTITHREADs中的并行处理]
  3. WriteOutput(将已处理的字符串写入输出数组)
  4. 例如: String Inputarr [] = {" RAM"," SHYAM"," CAT"}; 它应该写入输出数组为{" MAR"," MAYHS"," TAC"}

    所以这里的问题是: 我按顺序读取InputArray,然后由多个线程并行处理,然后线程如何以与从InputArray读取的顺序相同的顺序写入OutputArray?谁决定线程命令写?

2 个答案:

答案 0 :(得分:0)

您需要提供一些显式同步才能使其正常工作。从你想要保留顺序的意义上说,这是正确的,因为你的线程可能会同时尝试写入输出数组的同一元素,这会产生错误。

答案 1 :(得分:0)

  

那么线程如何以与从InputArray读取的顺序相同的顺序写入OutputArray?谁决定线程命令写?

将线程函数创建为lambda,它按值捕获目标槽的索引。