线程
线程是指程序在执行过程中,能够执行程序代码的一个执行单元。在 Java 语言中,线程有四种状态:运行、就绪、挂起、结束。
进程是指一段正在执行的程序。而线程也被成为轻量级的进程,一个进程可以拥有多个线程。
Java 标准库——java.lang.Thread
1.线程的创建
Thread()
Thread(String name)
Thread(Runnable target)
Thread(Runnable target, String name)
2.启动线程
void start()
3.线程休眠
static void sleep (long millis)
static void sleep (long millis, int nanos)
4.使其他线程等待当前线程终止
void join ()
void join (long millis)
void join (long millis, int nanos)
5.当前运行线程释放处理器资源
static void yield ()
6.返回当前运行的线程引用
static Thread currentThread ()
特别注意:线程的终止,应使用退出标志,而不是interrupt()
Thread VS Runnable
- Runnable 方式可以避免 Thread 方式由于 Java 单继承特性带来的缺陷。
- Runnable 的代码可以被多个线程共享,适合于多个线程处理同一资源的情况。
守护线程
运行在后台,为其他前台线程服务。一旦所有用户线程都结束运行,守护线程会随 JVM 一起结束工作。
垃圾回收 GC 就是最常见的守护线程。
设置守护线程 setDaemon(true)
需在 start()
方法之前调用,否则会抛出 IllegalThreadStateException
异常。