线程的优先级是优先级高的程序会先执行,而优先级低的程序会后执行。如果希望人为地控制线程,使正在执行的线程暂停,将CPU让给别的线程,这时可以使用静态方法sleep(long millis),该方法可以让当前正在执行的线程暂停一段时间,进入休眠等待状态。当前线程调用
sleep(long millis)方法
后,在指定时间(单位毫秒)内该线程是不会执行的,这样其他的线程就可以得以执行了。
sleep(long millis)方法声明会抛出InterrupledException异常,因此在调用该方法时应该捕获异常,或者声明抛出该异常。
下面通过一个案例来演示sleep(long millis)方法在程序中的使用。
public class Example02{
public static void main(String[] args)throws Exception{
//创建一个线程
new Thread(new SleepThread()).start();
for(int i=1;i<=10;i++){
if(i == 5){
Thread.sleep(2000); //当前线程休眠2秒
System.out.println("主线程正在输出:"+i);
Thread.sleep (500); //当前线程休眠500毫秒
// 定义SleepThread类实现Runnable接口
class SleepThread implements Runnable{
public void run(){
for (int i=1;i<=10; i++){
if(i ==3){
try {
Thread.sleep(2000);//当前线程休眠2秒
}catch(InterruptedException e){
e.printStackTrace();
System.out.println("SleepThread线程正在输出:"+i);
Thread.sleep(500); //当前线程休眠500毫秒
}catch (Exception e){
e.printStackTrace();
上面代码运行结果如下图所示。
代码中第15~31行代码定义了一个SleepThread类并实现了Runnable接口。在SleepThread类中重写了run()方法,run()方法中使用for循环打印线程输出语句;第26~30行代码使用sleep()方法设置线程休眠500毫秒;在第18~24行代码中使用if判断当变量i=3时,线程休眠2000毫秒;第4行中使用new关键词创建了一个SleepThread线程并启动;在第5~12行代码中使用for循环打印主线程的输出语句,并在第10行代码使用sleep()方法设置线程休眠500毫秒;在第6~8行代码中使用if判新出当变量i=5时,线程休眠2000毫秒。
本文转自:黑马程序员java开发培训课程 http://java.itheima.com
相关文章:
Java线程的生命周期包括哪几种状态?
Java线程优先级:Thread类的优先级常量
线程的优先级是优先级高的程序会先执行,而优先级低的程序会后执行。如果希望人为地控制线程,使正在执行的线程暂停,将CPU让给别的线程,这时可以使用静态方法sleep(long millis),该方法可以让当前正在执行的线程暂停一段时间,进入休眠等待状态。当前线程调用sleep(long millis)方法后,在指定时间(单位毫秒)内该线程是不会执行的,这样其他的线程就可以得以执行了。sleep(long millis)方法声明会抛出InterrupledException异常,因此在调用该方法时应该捕获异
url_list=[
'https://movie.douban.com/subject/1652587/reviews?sort=time&start=0',
'https://movie.douban.com/subject/1652587/reviews?sort=time&start=20',
让当前线程暂停执行,从运行状态进入阻塞状态,将CPU资源让给其他线程的调度方式,通过sleep()来实现。
sleep方法的定义:
public static native void sleep(long millis) throws InterruptedException;
从定义可以看出,sleep方法是静态本地方法,可以通过对象调用,方法定义抛出InterruptedException直接继承自Exception,外部调用的时候必须手动处理异常。
sleep(long millis),调
public class ThreadTest06 {
public static void main(String[] args) {
//让当前线程进入休眠,睡眠5秒
//当前线程是主线程!!!
Sleep可以让当前线程进行休眠,有如下两个方法:
public static void sleep(long millis) throws InterruptedException ,mills 毫秒
public static void sleep(long millis, int nanos) throws InterruptedException ,millis 毫秒, nan...
sleep方法的使用
Thread类的
方法 public static void
sleep(long millis)
作用:在指定的毫
秒数内让正在执行的
线程休眠(暂停执行)
参数为
休眠的时间,单位是毫
秒
一个
线程,使用
sleep方法:
package
java_thread;
class MyThread1 implements Runnable {
@Override
public void run() {
for(int i=0; i<15 ; i++){
Java中可以使用Thread的sleep()方法让当前线程休眠一段时间。该方法传入一个毫秒数作为参数,表示线程需要休眠的时间长度。若希望线程休眠10秒,可以使用以下代码:
try {
Thread.sleep(10000); // 10000毫秒 = 10秒
} catch (InterruptedException e) {
e.printStackTrace();
在代码中,使用try-catch结构捕获InterruptedException,以确保线程在被中断时能够正确处理。该方法是静态方法,可以在任何地方直接调用。需要注意的是,在调用sleep()方法时,当前线程会被休眠,而其他线程继续执行,因此这个方法通常用于需要定时或协调不同线程操作的场合。