UNIX(编程-线程处理):01---线程简介

一、线程的概念

  • 典型的UNIX进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各自独立的任务

二、线程的优点

  • 通过为每种事件类型分配单独的处理线程,可以简化处理异步事件的代码。每个线程在进行事件处理时可以采用同步编程模式,同步编程模式要比异步编程模式简单得多
  • 同一进程多个线程可以自动的共享相同的存储地址空间和文件描述符
  • 有些问题可以分解从而提高整个程序的吞吐量。在只有一个控制线程的情况下,一个单线程进程要完成多个任务,只需要把这些任务串行化。但是有多个控制线程时,相互独立的任务的处理就可以交叉进行,此时只需要为每个任务分配一个单独的线程。当然只有在两个任务的处理过程相互不依赖的情况下,两个任务才可以交叉执行
  • 交互的程序同样可以通过多线程来改善响应事件,多线程可以把程序中处理用户输入输出的部分与其他部分分开

有些人把多线程的程序设计与处理器或多核系统联系起来。但是即使程序运行在单处理器上,也能得到多线程编程模型的好处。处理器的数量并不影响程序结构,所以不管处理器的个数多少,程序都可以通过使用线程得以简化。而且,即使多线程程序在串行化任务时不得不阻塞,由于某些线程在阻塞时还有另一些线程可以运行,所以多线程在单处理器上运行还是可以改善响应时间和吞吐量

三、线程的其它特点

  • 每个线程都含有表示执行环境所必须的信息,其中包括进程中标识线程的线程ID, 一组寄存器值、栈、调度优先级和策略、信号屏蔽字、errno变量以及线程私有数据。一个进程的所有信息对该进程的所有线程都是共享的,包括可执行代码、程序的全局内核和堆内存、栈以及文件描述符

四、线程的接口与线程测试宏

猜你喜欢

转载自blog.csdn.net/qq_41453285/article/details/89293266