我认为可以如下操作
(假定T为总时间且T>(T[a]+T[b]+T[c]+T[d])
1顺序执行a b c d 计算各自需要的时间。
2 S[a]=int(T/T[a]*0.3)-1
3 S[b]=......;
..
4 当S[a]>0运行a S[a]--,并且计算T[a]2
5 S[a]=int(T/(T[a]+T[a]2)*2)-2
...

解决方案 »

  1.   

    改错
    我认为可以如下操作
    (假定T为总时间且T>(T[a]+T[b]+T[c]+T[d])
    1顺序执行a b c d 计算各自需要的时间。
    2 S[a]=int(T/T[a]*0.3)-1
    3 S[b]=......;
    ..
    4 当S[a]>0运行a S[a]--,并且计算T[a]2
    5 S[a]=int(T/(T[a]+T[a]2)*2*0.3)-2
    ...
    循环直到s[a]==0 s[b]==0 .. or T到了
      

  2.   

    方法2
    将 a b c d 分别写在a.exe b.exe c.exe d.exe中用线程计算运行a b c d 分别消号的cpu time 接着按照cpu time的比例(cpu tiem 和就是总时间),将a b c d 按比例放入线程池中,应该ok了,最好在每个函数完了都sleep一下。