我想知道为什么这段代码会给出运行时错误。 http://ideone.com/4a7v5A
我在我的本地尝试过,这就是我编译的方式
g++ -pthread -Wl,--no-as-needed -c -g -std=c++11 -MMD -MP -MF "/tmp/main.o.d" -o /tmp/main.o main.cpp
mkdir -p dist/Debug/GNU-Linux-x86
g++ -pthread -Wl,--no-as-needed -o /tmp/main.o -pthread
这是链接中的代码
这是输出
1 : Consumer-0joining
2 : Procuding item 1
3 : finished
4 : Consumer-5 consuming item 1
5 : Consumer-5 0 item left
6 : Procuding item 1
7 : finished
8 : Consumer-4 consuming item 1
9 : Consumer-4 0 item left
10 : Procuding item 1
11 : finished
12 : Consumer-2 consuming item 1
13 : Consumer-2 0 item left
14 : Procuding item 1
15 : finished
16 : Consumer-0 consuming item 1
17 : Consumer-0 0 item left
18 : Procuding item 1
19 : finished
20 : Consumer-6 consuming item 1
21 : Consumer-6 0 item left
22 : Procuding item 1
23 : finished
24 : Consumer-3 consuming item 1
25 : Consumer-3 0 item left
26 : Procuding item 1
27 : finished
28 : Consumer-1 consuming item 1
29 : Consumer-1 0 item left
30 : Procuding item 1
31 : finished
32 : Consumer-5 consuming item 1
33 : Consumer-5 0 item left
terminate called after throwing an instance of 'std::system_error'
what(): Operation not permitted