什么是进程、线程及多线程
进程:一个应用程序开始运行,那么就会存在一个属于这个应用程序的进程。进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。也即是说:进程是指在系统中正在运行的一个应用程序。每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。
线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中可以有多个线程的,这时这个应用程序也可以称之为多线程程序。简而言之:程序执行靠线程,一个程序运行后至少有一个进程,一个进程中可以包含多个线程。
多线程:就是一个程序中有多个线程在同时执行。
线程主要是由CPU寄存器、调用栈和线程本地存储器(Thread Local Storage,TLS)组成的。CPU寄存器主要记录当前所执行线程的状态,调用栈主要用于维护线程所调用到的内存与数据,TLS主要用于存放线程的状态信息。
单线程程序:就是有多个任务只能依次执行。当上一个任务执行结束后,下一个任务开始执行。如,多个人吃饭,但只有一双筷子,这样当一个人用筷子吃饭的时候,另一个人只能等上一个人吃完饭放下筷子,才能拿起筷子吃饭,这就是单线程;
多线程程序:就是有多个任务可以同时执行。如,多个人吃饭,有多双筷子,这样多个人就能同时吃饭;
多线程的优点:
1、可以同时完成多个任务,能适当提高程序的执行效率;
2、能够适当提高CPU、内存等资源的利用率;
多线程的缺点:
1、线程也是程序,线程需要占用的内存,所以线程越多,占用的内存也就越多;
2、多线程需要协调和管理,所以需要占用CPU时间以便跟踪线程;
3、线程之间对共享资源的访问会相互影响,必须解决争用共享资源的问题。
4、线程太多会导致控制太复杂,最终可能造成程序缺陷。
来源:CSDN
作者:小目标一个亿
链接:https://blog.csdn.net/wwwwerewrew/article/details/103746024