进程:我们把一个任务称为一个进程。例如:浏览器、视频播放器、word等都是进程。
线程:进程中分很多子任务,这些子任务就是线程。例如:word打字过程中,进行着拼写检查。
进程线程关系:进程可以包含多个线程,但至少有一个线程。
实现多任务的方式:
- 多进程模式(每个进程只有一个线程)
- 多线程模式(一个进程有多个线程)
- 多进程+多线程模式(复杂度最高)
在具体实现时,要考虑到进程和线程的特点。
多进程的缺点:
- 创建进程开销更大。
- 进程间通信比线程慢,线程间通信是读写同一个变量。
多进程的优点:稳定性高,一个进程崩溃不会影响其他进程,而一个线程崩溃会导致整个进程崩溃。
Java内置了多线程,一个Java程序实际上是一个JVM进程,JVM进程用主线程调用main方法,主线程的main方法又调用其他线程。此外,JVM中还有负责垃圾回收的其他工作线程。
对于Java程序来说,多任务的实现是多线程模式。