首页 理论教育 线程的调度

线程的调度

时间:2022-02-28 理论教育 版权反馈
【摘要】:线程运行次序以及它们从处理器得到的运行时间是程序设计者及用户所关心的。如果不希望一个线程长期占有全部系统资源,就需要进行线程调度。线程调度与抢占和时间分片有关,抢占的系统会在任意时刻使拥有最高优先级的线程运行,即当系统中存在多个线程,会自动让优先级高的占用系统资源,而其他优先级低的线程处于可运行状态。

11.3.3 线程的调度

线程运行次序以及它们从处理器得到的运行时间是程序设计者及用户所关心的。如果不希望一个线程长期占有全部系统资源,就需要进行线程调度。线程调度与抢占和时间分片有关,抢占的系统会在任意时刻使拥有最高优先级的线程运行,即当系统中存在多个线程,会自动让优先级高的占用系统资源,而其他优先级低的线程处于可运行状态。改变这种抢占运行模式的方法,可以使用:

·线程中调用了yield()方法,让出了CPU占用权;

·线程调用了sleep()方法,进入睡眠状态;

·由于I/O操作未完成,而受阻塞;

·另一个高优先级线程从睡眠醒来或完成I/O操作而返回运行状态;

·wait()使线程进入等待状态,并且释放对象锁,直到调用该对象锁的notify()或notifyAll()方法使线程从等待状态进入可运行状态。

改变线程的方法如下:

·Public void start();

·Public static void sleep(long millis);

·Public static void sleep(long millis,int names);

·Public final void stop();

·Public final void stop(Throwable obj);

·Public final void suspend();

·Public final void resume();

·Public static void yield();

·Public final void wait()。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈