Thread类的常用方法_sleep与创建多线程程序的第二种方式_实现Runnable接口

Thread类的常用方法_sleep

sleep介绍

sleep() 定义在Thread.java中,sleep() 的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”。sleep()会指定休眠时间,线程休眠的时间会大于/等于该指定休眠时间;在线程重新被唤醒时,它会由“阻塞状态”变成“就绪状态”,从而等待cpu的调度执行

package Demo01_Sleep;
/*
public static void sleep(Long millis) :使当前正在执行的线程以指定的毫秒数暂停〈暂时停止执行)
毫秒数结束之后,线程继续执行
 */
public class Demo_01_Sleep {
    public static void main(String[] args) throws InterruptedException {
        //模拟秒表
        for (int i = 1; i < 60; i++) {
            System.out.println(i);

            ////使用Thread类的sleep方法让程序睡眠1秒钟
            Thread.sleep(1000);
        }
    }
}

 

创建多线程程序的第二种方式_实现Runnable接口

采用`java.lang.Runnable`也是非常常见的一种,我们只需要重写run方法即可。步骤如下∶

1.定义Runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。

2.创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。

3.调用线程对象的start()方法来启动线程。

 

package Demo01_Sleep;

/*
    创建多线程程序的第二种方式:实现RunnabLe接口java.Lang. RunnabLe
        Runnable接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个称为 run的无参数方法。
    java.Lang.Thread类的构造方法
        Thread ( Runnable target)分配新的Thread对象。
        Thread ( Runnable target, string name)分配新的Thread对象。
    实现步骤:
        1.创隍一个Runnable接口的实现类
        2.在实现类中重写Runnable接口的run方法,设置线程任务
        3.创建一个Runnable接口的实现类对象
        4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象
        5.调用Thread类中的start方法,开启新的线程执行run方法
 */

public class Demo01_Runnble01 {
    public static void main(String[] args) {
        //3.创建一个Runnable接口的实现类对象
        Demo01_Runnble runnble = new Demo01_Runnble();
        //4.创建Thread类对象,构造方法中传递Runnable接口的实现类对象
        Thread thread = new Thread(runnble);
        //5.调用Thread类中的start方法,开启新的线程执行run方法
        thread.start();
        for (int i = 0; i < 20; i++) {
            System.out.println(Thread.currentThread().getName()+"-->"+i);

        }
    }
}

 

package Demo01_Sleep;
///1.创建一个Runnable接口的实现类
public class Demo01_Runnble implements Runnable {
    //在实现类中重写RunnabLe接口的run方法,设置线程任务
    public static void main(String[] args) {
    }
    @Override
    public void run() {
        for (int i = 0; i < 20; i++) {
            System.out.println(Thread.currentThread().getName()+"-->"+i);
        }
    }
}

 

posted @ 2022-07-07 20:32  zj勇敢飞,xx永相随  阅读(54)  评论(0编辑  收藏  举报