两个线程,如何让每隔10毫秒执行线程B,在两个10毫秒之间执行线程A

2025-06-27 02:58:17
推荐回答(2个)
回答1:

B 保持着一个锁,在 B 准备 sleep 或 wait 之前释放它,这样在这个锁上等待的 A 就开始运行了,A 运行完了就释放锁,B 醒来后又去拿锁。

不过你这想法不保险,比如 A 执行的时间超过 10 毫秒,那 B 下一次拿锁可以间隔了一个间距 (10ms) 而花去了仅 20 毫秒。

把你的需求用文字描述一下,比如为什么你需要这样来实现功能,达到什么目的,如果只从技术角度描述我们只知道你的设计而不知道业务需求,因此设计不一定是合适的。

回答2:

用Timer类的方法
schedule(TimerTask task, long time)
安排在指定的时间执行指定的任务。这个方法只执行一次
schedule(TimerTask task, Date firstTime, long period)
安排指定的任务在指定的时间开始进行重复的固定延迟执行。