runner不用想太复杂 他就是把传进来的值扣1而已用c写pthread麻烦的点在呼叫thread要执行的函式时 需要送参数进去 设计上是呼叫pthread_create的同时传参数进去 但c传递参数又必须指定好型别 所以在create这边一律规定传void指标进去 到函式内部再让使用者自己转型 如果有想要让thread return什么东西的话 也要用类似的手法另外要注意++v跟v++的差别 ++v是先更改值(先+1)再做其他操作 但v++是先做其他操作,最后才更改值对了还要小心print的顺序 这边每个parent都要wait后才会print 所以顺序是DCBA