进程:正在运行的程序。是系统进行资源分配和调用的独立单位。
每一个进程都有它自己的内存空间和系统资源。
线程:进程中的单个顺序控制流,是一条执行路径。
一个进程有一条(多条)执行路径,则称为单线程(多线程)程序。
并发:逻辑上同时发生,某个时间内同时运行多个程序。
并行:物理上同时发生,某个时间点同时运行多个程序。
注意:
- 一个进程中的多个线程是并发运行的,线程的执行顺序取决于CPU的调度,从而造成了多线程的随机性。
- jvm虚拟机的启动也是多线程的,最低启动两个线程,即垃圾回收线程和主线程。(即Java程序运行时至少会启动两个线程)
- 一般在开发多任务运行时,考虑创建多线程而不是多进程。
- 进程之间不能共享内存,而线程可以。
- 多线程同步完成多个任务,不是为了提高程序运行效率,而是提高资源使用效率来提高系统效率。