一个进程中可以并发多个线程,每条线程并行执行不同的任务。
进程:一个进程包括由操作系统分配的内存空间,包含一个或者多个线程。
一个线程不能独立运行,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。
线程的生命周期
-
新建状态:
使用new关键字和Thread类或其子类建立一个线程对象后,处于新建状态,使用start()方法后才切换到就绪状态。 -
就绪状态:
当线程对象调用start()方法后进入就绪状态。处于就绪队列中,要等待JVM里线程调度器的调度。 -
运行状态:
系统调度获取CPU资源后,就可以执行run(),此时线程便处在运行状态。
运行状态的线程可以切换到阻塞状态、就绪状态和死亡状态。 -
阻塞状态:
执行sleep(睡眠)、suspend(挂起)等方法,失去所占资源后,该线程就从运行状态进入阻塞状态。
… 省略了很多 还没看懂
wait() synchronized join() -
死亡状态
一个运行状态的线程完成任务或者其他终止条件发生时,该线程就切换到终止状态。
函数有 stop()、destroy()强制终止。
创建线程
①实现Runnable接口(常用)
②继承Thread类本身(常用)
③通过Callable和Future创建线程
Thread常见方法
1、public final void setName(String name)
改变线程名称,使之与参数 name 相同。
2、public final void setDaemon(boolean on)
将该线程标记为守护线程或用户线程。