并发编程之 线程与进程、什么是多线程?并行和并发有什么区别?

版权声明:本文为博主原创文章,未经博主允许不得转载。有问题请联系Q:346660118 https://blog.csdn.net/Dreamhai/article/details/86620365

1.线程是什么?进程是什么?二者有什么区别和联系?

  1. 进程:程序运行资源的最小单位,进程内部有多个线程,会共享这个进程的资源
  2. 线程:是CPU独立运行和独立调度的基本单位,必须依赖进程而存在

两者的联系:进程和线程都是操作系统所运行的程序运行的基本单元。
区别:
(1)进程具有独立的空间地址,一个进程崩溃后,在保护模式下不会对其它进程产生影响。
(2)线程只是一个进程的不同执行路径,线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。

2. 什么是多线程?

多线程:是指从软件或者硬件上实现多个线程的并发技术。
多线程的好处:
(1)使用多线程可以把程序中占据时间长的任务放到后台去处理,如图片、视屏的下载
(2)发挥多核处理器的优势,并发执行让系统运行的更快、更流畅,用户体验更好
多线程的缺点:
(1)大量的线程降低代码的可读性;
(2)更多的线程需要更多的内存空间
(3)当多个线程对同一个资源出现争夺时候要注意线程安全的问题。

3. 并行和并发有什么区别?

  1.  并行:是指同一时刻可以同时处理事情的能力(举例: 比如告诉公路上有8个窗口 , 所以同一时刻,高速公路可以放行的车辆是8辆,所以就说并行的数量是8)
  2. 并发: 是指单位时间内,可以处理事情的能力[特别注意这个单位时间]
    1. 举例: 接上 并行的例子 , 比如一个窗口处理一辆车的需要10秒钟,那么一分钟 这个收费站的并发量6*8=48,也就是说,这个收费站并发量是48量/分钟

猜你喜欢

转载自blog.csdn.net/Dreamhai/article/details/86620365