进程的定义:进程是程序(任务)的执行过程,是持有资源的载体。例如,同时打开QQ和微信。
线程的定义:线程是程序中执行运算的最小单位,可完成一个独立的顺序执行流程。
多线程的定义:一个进程同时运行了多个线程,用来完成不同的工作。
**多个线程交替占用CPU资源,而非真正的并行执行。**
**线程每次执行时常有分配的CPU时间片长度决定。**
创建线程的两种方式:
**1、继承Threa类
2、实现Runable接口**
线程的五大状态:
创建状态 > 就绪状态 > 运行状态 > 阻塞状态 > 死亡状态
线程的调度:
setPriority() :仅表示线程具有较多的执行机会,而非优先执行
getPriority() :用取得进程、进程组和用户的进程执行优先权。
sleep() :休眠,自动苏醒。
join() :阻止并强制执行。
yield() :礼让,只提供一种可能。
wait() :挂起当前线程,释放共享资源的锁,需要被唤醒才能运行。
notify() :随机唤醒一个正在等待的线程,获得锁后才能真正执行。
notifyAll() :所有等待的线程被一次性全部接触阻塞。
同步方式:
同步代码块:synchronized
同步方法 :public synchronized void run(){}
死锁 :所谓死锁,是指多个线程,因竞争资源而造成的一种僵局(互相等待对方释放资源),若无外力作用,这些进程实现都将无法向前推进。