进程:应用程序的执行实例 有独立的内存空间和系统资源
线程:CPU调度和分派的基本单位 进程中执行运算的最小单位,可完成一个独立的顺序控制流程
多线程:如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为"多线程"
多个线程交替占用CPU资源,而非真正的并行执行
对线程的好处 充分利用CPU的资源
简化编程模型
带来良好的用户体验
在Java中创建线程的两种方式
Thread类
Runnable接口
定义线程》创建线程对象》启动线程》终止线程
setPriority(int newPriority) 更改线程的优先级
static void sleep(long millis) 在指定的毫秒数内让当前正在执行的线程休眠
void join() 等待该线程终止
static void yield() 暂停当前正在执行的线程对象,并执行其他线程
只是提供一种可能,但是不能保证一定会保证礼让
void interrupt() 中断线程
boolean isAlive() 测试线程是否处于活动状态
synchronized 同步锁
ArrayList类的add()方法为非同步方法 (非线程安全)