进程是CPU分配资源的最小单位,相互独立;线程是CPU执行任务的最小单位,同一进程中的线程共享资源
并发:任务数多于CPU核数,快速运行,肉眼看起来好像是一起执行
并行:任务数小于等于CPU核数
同步和异步哪个是做多任务的?
异步。同步:协同步调,商量好做(比如接力赛)
栗子:百度网页和谷歌网页之间的设置是用多进程。因为线程一个崩溃,会引起其他相关的线程崩溃
进程和线程的区别:
一个进程在执行的过程中可以产生多个线程,线程和进程最大的不同在于基本上各进程是独立的,而各线程不一定,因为同一进程中的线程极有可能会相互影响。线程执行开销小,但不利于资源的管理和保护,而进程正好相反。
- 同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间;
- 同一进程内的线程共享本进程的资源,但是进程之间的资源是独立的;
一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程崩溃,所以多进程比多线程健壮; - 进程切换,消耗的资源大。所以涉及到频繁的切换,使用线程要好于进程;
- 两者均可并发执行;
- 每个独立的进程有一个程序的入口、程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
进程的状态有哪些:
- 创建状态(new)
- 就绪状态(ready)
- 运行状态(running)
- 阻塞状态(waiting)
- 结束状态(terminated)