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

给出Java中线程函数的用法。

发布时间:2023-05-31 11:20:00

Java中线程函数是指用于创建和管理线程的API函数,这些函数是Java中多线程编程的核心。Java中线程函数用于创建线程、启动线程、停止线程、休眠线程、等待线程、优先级调度等各种操作,使多个线程能够互相协同工作。本文将详细介绍Java中线程函数的用法。

一、创建线程

Java中创建线程有两种方式:继承Thread类和实现Runnable接口。下面是两种方式的示例代码。

1. 继承Thread类

public class MyThread extends Thread {
    public void run() {
        // 线程执行内容
    }
}

MyThread myThread = new MyThread();
myThread.start();

2. 实现Runnable接口

public class MyRunnable implements Runnable {
    @Override
    public void run() {
        // 线程执行内容
    }
}

MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();

二、启动线程

线程创建后需要用start()函数启动线程。start()函数会调用线程的run()函数,执行线程中的任务。

MyThread myThread = new MyThread();
myThread.start();

三、停止线程

停止线程应该使用Thread.interrupt()函数,而不是使用stop()、suspend()和resume()函数,因为后三者函数可能会导致死锁、死循环等问题。

MyThread myThread = new MyThread();
myThread.start();

myThread.interrupt();

在线程中可以检查线程的中断状态,使用Thread.interrupted()函数或isInterrupted()函数。

public class MyThread extends Thread {
    public void run() {
        while (!Thread.interrupted()) {
            // 线程执行内容
        }
        // 线程停止
    }
}

MyThread myThread = new MyThread();
myThread.start();

myThread.interrupt();

四、休眠线程

线程可以使用Thread.sleep()函数休眠一定的时间。sleep()函数会使得当前线程进入阻塞状态,等待指定的时间后会自动恢复。

MyThread myThread = new MyThread();
myThread.start();

try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    e.printStackTrace();
}

五、等待线程

线程可以使用wait()函数等待另外一个线程的完成。wait()函数会使得当前线程进入阻塞状态,等待其他线程的notify()或notifyAll()函数的唤醒。

public class MyRunnable implements Runnable {
    @Override
    public void run() {
        synchronized (this) {
            try {
                this.wait();
                // 线程继续执行
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();

synchronized (myRunnable) {
    myRunnable.notify();
}

六、优先级调度

线程在创建时会有一个默认的优先级,可以用Thread.setPriority()函数设置线程的优先级。线程的优化级有三种:最高优先级Thread.MAX_PRIORITY,最低优先级Thread.MIN_PRIORITY,以及普通优先级Thread.NORM_PRIORITY。

MyThread myThread = new MyThread();
myThread.setPriority(Thread.MAX_PRIORITY);
myThread.start();

以上就是Java中线程函数的基本用法,通过线程函数的运用可以实现多线程的操作,更好地提高程序运行效率和效果。