给出Java中线程函数的用法。
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中线程函数的基本用法,通过线程函数的运用可以实现多线程的操作,更好地提高程序运行效率和效果。
