使用线程

时间:2017-04-30 06:06:27

标签: java multithreading scheduling

在一个带有单个cpu的多线程程序中,当我们说一个特定的线程做一些让我们说每10秒一次时,我们怎样才能确保这个线程肯定会在完成后10秒内运行(有机会运行)上一次被执行了吗?

为了使该线程在10秒内运行,操作系统必须中断在该特定时间运行的任何线程。据我所知,我们无法完全控制谁在特定时间运行。

当我们做时间特定的操作时,我们得到的只是幻觉? 有人可以解释一下吗?

1 个答案:

答案 0 :(得分:0)

简短的回答是,这是一种幻觉。即使使用单线程程序,也无法保证程序将在您想要执行操作的精确时间运行。这是因为操作系统可能允许某个其他任务在该特定时刻运行。您可以使用线程优先级来尝试并鼓励操作系统调度程序将任务优先于其他任务,但不保证它将在给定时间运行。