- 进程
进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行 - 线程
线程是一条执行路径,是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以实现并发操作,每个请求分配一个线程来处理。
一个正在运行的软件(如360安全卫士)就是一个进程,一个进程可以同时运行多个任务(病毒查杀,垃圾清理,软件卸载,每个任务就是一个线程), 可以简单的认为进程是线程的集合。
线程是一条可以执行的路径。多线程就是同时有多条执行路径在同时(并行)执行。
- 单核CPU中,顺序编程(串行)
顺序编程:程序从上往下的同步执行,即如果第一行代码执行没有结束,第二行代码就只能等待第一行执行结束后才能结束。
public class Main {
// 顺序编程 吃喝示例:当吃饭吃不完的时候,是不能喝酒的,只能吃完饭才能喝酒
public static void main(String[] args) throws Exception {
// 先吃饭再喝酒
eat();
drink();
}
private static void eat() throws Exception {
System.out.println("开始吃饭?...\t" + new Date());
Thread.sleep(5000);
System.out