- 进程和线程都可以实现多任务,当然他们是有区别的:
- 定义:
- 进程是系统进行分配任务的,系统属于老大级别,线程属于二线领导。
- 线程依赖进程存在,它就属于小弟级别,它是比进程更小的能独立运行的基本单位.线程占用的系统资源非常少,它可与同属一个进程的其他的线程共享进程所拥有的全部资源。比如:老大分配给一个任务给二线领导(线程),然后他再分给下面的小弟(线程),没人分一点,所用的资源基本都是来自于进程的,它利用这些资源去办事。
- 区别:
- 一个程序至少有一个进程,一个进程至少有一个线程。例如:一个组织需要一个头目领导(系统),还得需要一些管理人员(线程),还需要底层办事人员(线程)
- 线程占用的资源比进程少很多,所以线程相对进程并发性要高。
- 每个进程在执行中都拥有独立的内存资源,而线程资源是共享的,运行效率就会比较高。
- 线程不能独立运行,必须依赖进程执行。
- 总结:线程执行效率较高,但是不利于资源的管理和保护(一般需要使用互斥锁来解决),进程相反。