欢迎访问宙启技术站
智能推送

Java中的Thread类函数及其用法介绍

发布时间:2023-06-07 16:04:32

Thread类是Java中的一个非常重要的类,它代表线程。Java中的线程允许我们在同一个程序中同时执行多个代码路径,从而实现多任务。线程可以大大提高程序的执行效率,减少等待时间,提高用户需求的响应速度。在Java中,一个程序必须至少有一个线程,这个线程是主线程。本文将介绍Java中的Thread类函数及其用法。

Thread类函数:

1. start():启动线程,将线程置于可运行状态,并执行run()方法。

2. run():线程体函数,包含线程运行的代码,必须重写。

3. currentThread():返回对当前正在执行的线程对象的引用。

4. setName(String name):设置线程名称。

5. getName():获取线程名称。

6. sleep(long millis):使线程休眠指定的毫秒数,抛出InterruptedException异常。

7. join(long millis):等待该线程终止的时间最长不超过millis 毫秒。

8. isAlive():判断线程是否还处于活动状态。

9. yield():该方法暂停当前正在执行的线程,以便其他线程运行,但并不能保证使得CPU的执行权转移到另一个线程。

10. interrupt():中断线程。如果线程处于阻塞状态,将抛出InterruptedExceptio错误。

11. setPriority(int priority):设置线程的优先级,优先级是一个整数,取值范围是1~10,分别对应Thread中的MIN_PRIORITY和MAX_PRIORITY。

12. getPriority():获取线程的优先级。

Thread类详细使用:

1. 启动线程:

启动线程的方法是调用start()函数。当调用start()函数后,一个新的线程就被创建出来,并且将会执行run() 方法中的代码。start()函数不能被重复调用。

public class MyThread extends Thread {

    @Override

    public void run() {

        System.out.println("MyThread is running!");

    }

    public static void main(String[] args) {

        MyThread myThread = new MyThread();

        myThread.start();

    }

}

2. 命名线程:

可以使用setName(String name)函数来为线程命名。线程名称是一个字符串,如果没有通过setName()函数指定线程名称,则系统会自动生成一个名称。

public class MyThread extends Thread {

    public MyThread() {

        setName("MyThread");

    }

    @Override

    public void run() {

        System.out.println(getName() + " " + "is running!");

    }

    public static void main(String[] args) {

        MyThread myThread = new MyThread();

        myThread.start();

    }

}

3. 线程休眠:

可以使用sleep(long millis)函数来使线程休眠指定的毫秒数。

public class MyThread extends Thread {

    @Override

    public void run() {

        for (int i = 0; i < 10; i++) {

            System.out.println(getName() + ":" + i);

            try {

                sleep(1000);

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    }

    public static void main(String[] args) {

        MyThread myThread = new MyThread();

        myThread.start();

    }

}

4. 等待线程终止:

可以使用join(long millis)函数来等待线程终止。join()函数会使得当前线程(一般指主线程)等待调用该函数的线程的终止。

public class MyThread extends Thread {

    @Override

    public void run() {

        for (int i = 0; i < 10; i++) {

            System.out.println(getName() + ":" + i);

            try {

                sleep(1000);

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    }

    public static void main(String[] args) {

        MyThread myThread = new MyThread();

        myThread.start();

        try {

            myThread.join();

        } catch (InterruptedException e) {

            e.printStackTrace();

        }

        System.out.println("MyThread is dead!");

    }

}

5. 设置优先级:

可以使用setPriority(int priority)函数来设置线程的优先级。线程的优先级越高,则该线程在竞争CPU资源时的优先级就越高。

public class MyThread extends Thread {

    public MyThread() {

        setPriority(10);

    }

    @Override

    public void run() {

        for (int i = 0; i < 10; i++) {

            System.out.println(getName() + ":" + i);

            try {

                sleep(1000);

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    }

    public static void main(String[] args) {

        MyThread myThread = new MyThread();

        myThread.start();

    }

}

以上就是Java中Thread类函数及其用法的详细介绍。线程是Java中重要的概念,掌握线程的使用方法对于Java程序员来说非常重要。