1. 回忆下fork-join_none
fork-join_none相信大家应该熟悉了,新来的朋友可以回顾下jerry之前的文章,就是之前jerry提到的那个“暴脾气”的哥们,他不会去等别人,直接会着急做自己的事情。
前文回顾(点击查看):fork-join挺好用的了,fork-join_any、fork-join_none有什么用?
回顾下那篇文章中我们举的一个例子,这个暴脾气可以这么用:
fork
aa( );
aa( );
aa( );
……
aa( );
aa( );
join
如上代码,我们想要并行的执行100个 aa( )这个函数进程。通过fork-join要写到手软,用这个暴脾气,几句话就搞定:
for(int i=0; i<100; i++)
fork
aa( );
join_none
但是,今天jerry告诉各位初学者,这个暴脾气有不好驾驭的那一面的哦,弄不好就很容易翻车!!
2. fork-join_none翻车现场
什么情况下容易翻车呢?
大家仔细看看上面的例子,并行运行的aa( ),都是一样的内容,放在for循环中,却并没有使用for循环的循环因子 i 啊~
有人说,这有什么关系吗?
好的,来,看看jerry今天准备的代码,逼出它的邪恶面!
我们还是通过暴脾气fork-join_none