1.编码
int main(int argc, char *argv[])
{std::vector<int> array;for (int i = 1; i <= 100; ++i){array.push_back(i);}std::vector<int> result(array.size());std::transform(std::execution::par, array.begin(), array.end(), result.begin(), [](int x) {static std::mutex mutex;std::lock_guard<std::mutex> lock(mutex);std::cout << std::this_thread::get_id() << " " << x << std::endl;return x * 10;});
}
2.编译
g++ -std=c++20 main.cpp -ltbb
3.执行输出
7f9c44c96740 1
7f9c44c96740 2
7f9c44c96740 3
7f9c44c96740 4
7f9c44c96740 5
7f9c44c96740 6
7f9c44c96740 7
7f9c44c96740 8
7f9c44c96740 9
7f9c44c96740 a
7f9c44c96740 b
7f9c44c96740 c
7f9c44c96740 d
7f9c44c96740 e
7f9c44c96740 f
7f9c44c96740 10
7f9c44c96740 11
7f9c44c96740 12
7f9c44c96740 13
7f9c44c96740 14
7f9c44c96740 15
7f9c44c96740 16
7f9c44c96740 17
7f9c44c96740 18
7f9c44c96740 19
7f9c44c96740 1a
7f9c44c96740 1b
7f9c44c96740 1c
7f9c44c96740 1d
7f9c44c96740 1e
7f9c44c96740 1f
7f9c44c96740 20
7f9c44c96740 21
7f9c44c96740 22
7f9c44c96740 23
7f9c44c96740 24
7f9c44c96740 25
7f9c44c96740 26
7f9c44c96740 27
7f9c44c96740 28
7f9c44c96740 29
7f9c44c96740 2a
7f9c44c96740 2b
7f9c44c96740 2c
7f9c44c96740 2d
7f9c44c96740 2e
7f9c44c96740 2f
7f9c44c96740 30
7f9c44c96740 31
7f9c44c96740 32
7f9c44c96740 33
7f9c44c96740 34
7f9c44c96740 35
7f9c44c96740 36
7f9c44c96740 37
7f9c44c96740 38
7f9c44c96740 39
7f9c44c96740 3a
7f9c44c96740 3b
7f9c44c96740 3c
7f9c44c96740 3d
7f9c44c96740 3e
7f9c44c96740 3f
7f9c44c96740 40
7f9c44c96740 41
7f9c44c96740 42
7f9c44c96740 43
7f9c44c96740 44
7f9c43ce96c0 4c
7f9c44c96740 58
7f9c44c96740 59
7f9c44c96740 5a
7f9c44c96740 5b
7f9c44c96740 5c
7f9c44c96740 5d
7f9c44c96740 5e
7f9c44c96740 5f
7f9c44c96740 60
7f9c44c96740 61
7f9c44c96740 62
7f9c44c96740 63
7f9c44c96740 64
7f9c44c96740 48
7f9c44c96740 49
7f9c44c96740 4a
7f9c44c96740 4b
7f9c44c96740 46
7f9c44c96740 47
7f9c44c96740 4f
7f9c44c96740 50
7f9c44c96740 51
7f9c44c96740 4e
7f9c43ce96c0 4d
7f9c430e66c0 52
7f9c434e76c0 57
7f9c440ea6c0 45
7f9c41ce16c0 53
7f9c438e86c0 56
7f9c43ce96c0 54
7f9c44c96740 55