永发信息网

比如一共有5个不同的不同的语句,第一个语句运行完成等待1秒再运行第二个以此类推,有什么简便点的方法

答案:2  悬赏:80  手机版
解决时间 2021-02-24 17:56
  • 提问者网友:两耳就是菩提
  • 2021-02-24 03:51
比如一共有5个不同的不同的语句,第一个语句运行完成等待1秒再运行第二个以此类推,有什么简便点的方法么?
最佳答案
  • 五星知识达人网友:旧脸谱
  • 2021-02-24 03:57
thread线程等待咯,不知道你用的是java,C#还是什么的,具体的代码我就不写了。
thread.wait=1000
全部回答
  • 1楼网友:千夜
  • 2021-02-24 05:01

使用线程睡眠:sleep(1000) 线程可以调用sleep函数使其在指定时间内不被调度: void sleep(dword dwmilliseconds); sleep调用会挂起当前线程,dwmilliseconds毫秒之后再将其恢复为可调度的。sleep函数有以下几点值得注意:

sleep调用会导致当前线程放弃其剩余的时间片 sleep调用时,系统挂起当前线程的时长大约是dwmilliseconds毫秒——比如,当dwmilliseconds设置为100时,在大多数情况下,当前线程睡眠的时长并不会是100ms,可能是几百毫秒、几秒、几分钟甚至更长。因为windows并不是一个实时系统,所以dwmilliseconds只是一个建议值 为dwmilliseconds传递infinite会使当前线程永远睡眠,这通常没什么用处 为dwmilliseconds传递0时,当前线程会放弃剩余的时间片,系统会尝试调度优先级等于或高于当前线程 的可调度线程,如果没有找到这样的线程,系统将马上重新调度调用sleep的线程 切换:switchtothread 当前线程可以调用switchtothread强迫操作系统调度另外的可调度线程(如果存在): bool switchtothread();

当前线程调用switchtothread时,系统会检查是否存在可调度的线程处于“饥饿”状态,如果没有找到,switchtothread立刻返回,系统继续执行当前线程,否则系统将暂停当前线程并调度处于“饥饿”状态的线程(无论该线程的优先级大小),“饥饿”线程的调度时间大约是一个时间片,然后系统调度将恢复正常。

当线程a需要获得某资源,而该资源又被另一优先级较低的线程b占用时,a可以调用switchtothread迫使操作系统调度低先级的进程,以期待b释放被占用的资源。当没有其它线程可调度时,switchtothread返回false,否则返回一个非0值。

switchtothread函数和sleep(0)调用类似,不同之处在于switchtothread允许系统调度优先级低于当前线程的可调度线程,但sleep(0)只允许调度优先级不低于当前线程的可调度线程。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯