多线程学习一、概念学习

进程、线程及多线程的概念
进程:一个应用程序开始运行就会存在一个属于这个应用程序的进程。
进程指的是正在运行的程序,当程序进入内存运行就会变成一个进程,进程就是处于运行过程中的程序,并且具有一定独立功能。
每个进程之间是独立的,均运行在专用且受保护的内存空间。
线程:线程是进程的一个执行单元,程序执行靠的就是线程,一个程序中至少有一个线程。一个进程中可以有多个线程的。
线程主要有CPU寄存器、调用栈和线程本地存储器(TLS)组成的,CPU寄存器主要记录当前所执行线程的状态,调用栈主要用于维护线程所调用的内存和数据,TLS主要用于存放线程的状态信息。
单线程程序就是如果有多个任务只能依次执行。
多线程:多线程程序就是如果有多个任务,可以同时执行。
一个核的CPU从微观角度来说同一时刻只能有一个线程在处理。但是目前电脑都是多核的,可以有多线程,如果CPU是单核的,其实就不存在多线程了。
多线程的优点
1.可以同时完成多个任务,能适当提高程序的执行效率
2.能适当提高资源利用率(CPU、内存利用率)
多线程的缺点
1.线程也是程序,所以线程需要占用内存,默认情况下,主线程占用1M,子线程占用512Kb.线程越多,占用内存也越多
2.多线程需要协调和管理,所以需要占用CPU时间以便跟踪线程。
3.线程之间对共享资源的访问会互相影响,必须解决争用共享资源的问题。
4.线程太多会导致控制太复杂,最终可能造成程序缺陷。

猜你喜欢

转载自blog.csdn.net/q1923408717/article/details/107913507