线程是cpu使用的基本单元,它由线程id,程序计数器,寄存器集合和栈组成,它与属于同一进程的其他线程共享代码段,数据段和其他操作系统资源。
传统重量级的进程只有单个控制线程,如果进程有多个控制线程,那么它能同时做多个任务。
运行在现代桌面pc上的许多软件包都是多线程的,一个应用程序通常是作为一个具有多个控制线程的独立进程实现的,例如,网页浏览器可能 有一个线程用于显示图像和文本,另一个线程用于从网络接收数据。
进程创建很消耗时间和资源
多线程编程有如下4个优点 :
- 响应度高:如果 对一个交互程序采用多线程,那么即使其部分阻塞或执行较冗长的操作,该程序仍能继续执行,从而增加了对用户的响应程度,例如,多线程Web浏览器在用一个线程装入图像时,能通过另一个线程与用户交互。
- 资源共享:线程默认共享它们所属进程的内存和资源,代码和数据共享的优点是它能允许一个应用程序在同一地址空间有多个不同的活动线程。
- 经济:进程创建所需要的内存和资源的分配比较昂贵,由于线程能共享它们所属进程的资源,所以创建和切换线程会更为经济,
- 多处理器体系结构的利用: 多线程的优点之一是能充分使用多处理器体系结构,以便每个进程能并行运行在不同的处理器上,不管有多少CPU,单线程进程只能运行在一个CPU上,在多CPU上使用多线程加强了并发功能。
小结
线程是进程内的控制流,多线程进程在同一地址空间内包含多个不同的控制流,多线程的优点包括对用户响应的改进、进程内的资源共享、经济和利用多处理器体系结构的能力。
网友评论