请教下各位高手,多线程中的信号灯怎么使用?
本帖最后由 4463424 于 2021-9-6 15:05 编辑请教下各位高手,多线程中的信号灯怎么使用?
我想实现同时启动10个线程(10个线程的计算量不等),10个线程按调用顺序输出值,好像信号灯可以控制顺序,就是不知道怎么用,请高手指点下,谢谢!!!!!
例:
计次循环 (10)
启动线程 (子线程, 取循环索引 ())
子线程(1):10s完成
子线程(2):3s完成
子线程(3):20s完成
子线程(4):1s完成子线程(5):18s完成
子线程(6):1s完成
子线程(7):10s完成
子线程(8):12s完成
子线程(9):5s完成
子线程(10):50s完成
我想让10个线程排队运行, 子线程(1)>子线程(2)>子线程(3)>子线程(4)>子线程(5)>子线程(6)>子线程(7)>子线程(8)>子线程(9)>子线程(10)
我感觉你的描述象线程池 kamikaze 发表于 2021-9-6 14:02
我感觉你的描述象线程池
o 明白你的意思了
你弄一个整数数组变量和互斥锁 然后 按顺序将输出值加入数组
加入之前 判断 数组成员数,如果没成员不足 就等待输出 kamikaze 发表于 2021-9-6 14:04
o 明白你的意思了
你弄一个整数数组变量和互斥锁 然后 按顺序将输出值加入数组
加入之前 判断 数组成员 ...
谢谢 你的回答!
我的理解是互斥锁好像是锁关键段,就只能让一个线程进入,其它线程在外面等着,谁先进不能确定。
不知道这样理解对不对 对的 如果 两个线程 同时修改一个变量 或者 同一个组件时 就会崩溃
互斥锁 就防止这个 子线程用类可以解决冲突,类每次调用都是一个新的实体. 信号灯原来设定同时运行的线程数量,设置为1个 就可以实现每个线程运行完毕在运行下一个线程 当前线程等待上一个线程完成 kamikaze 发表于 2021-9-6 16:15
如果 两个线程 同时修改一个变量 或者 同一个组件时 就会崩溃
互斥锁 就防止这个 ...
谢谢谢谢谢谢谢谢谢谢谢谢
页:
[1]
2