我有如下数据要处理,每一个case代表一个任务列表,step代表一个特定的操作步骤,每个case的step数据不一样,job代表一个定时任务而且处理时间比较长,step1、step2执行完之后都需要执行job1。如何使用多线程处理这样的数据,然后处理到每个case的时候遇到job1这个任务当前线程就挂起,然后等所有case处理到job1的时候只调用一次job1,等job1执行完之后线程继续往下执行?
case1:step1 step2 job1 step3 step4 job2 step5 -->存在多个job
case2:step1 step2 job1 step3 step4 step5 job2 step6
case3:step1 step2 step3 -->no job
caseN
你的场景适合使用信号量同步 threading.Semaphore
-- update 2019.2.27
刚知道 python3.2 引入了threading.Barrier, 这个就像POSIX C中pthread的barrier,更适合你的场景,这有个简单例子:https://blog.csdn.net/u013346...