线程技术早在20世纪60年代就被提出了。20世纪80年代中期,多线程被应用到操作系统中。目前,多线程技术已经被许多操作系统所支持,包括WindowsNT/2000和Linux。存在于同一进程中的线程会共享一些信息,这些信息包括全局变量、进程指令、数据、信号处理程序、信号设置、用户ID和用户组ID等。
Linux是一个多用户、多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几项任务,它可以在还没有执行完一项任务时又执行另一项任务。在操作系统设计上,从进程(Process)演化出线程(Thread),最主要的目的就是更好地支持多处理器,并且减少(进程/线程)上下文切换的开销。线程是在共享内存空间中并发的多道执行路径,它们共享一个进程的资源。在两个普通进程(非线程)间进行切换时,内核从一个进程的上下文切换到另一个进程的上下文要做很多工作,包括保存旧进程CPU状态,并加载新进程的保存状态,用新进程的内存映像替换旧进程的内存映像。
线程也有其私有数据信息,包括
●线程号(ThreadID):每个线程都有一个唯一的线程号与之对应。
●堆栈。
●信号掩码。(www.xing528.com)
●优先级。
●线程私有的存储空间。
在Linux应用程序开发中的很多情况下都采用多线程作为一种多任务、并发的工作方式。多线程具有以下优点:
1)提高应用程序的响应速度。将耗时长的操作置于一个新的线程,可以避免系统的等待。
2)使多CPU系统更有效。操作系统会保证当线程数目不大于CPU数目时不同的线程运行于不同的CPU上。
3)改善程序结构。一个长而复杂的进程可以分为多个线程,成为独立运行的部分。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。