Threads线程为什么要引入线程一WEB服务器同时处理多个客户请求一创建多个进程降低响应时间一进程开销较大(上下文切换)线程(轻量级进程)一是CPU调度的一个基本单位
Threads 线程 为什么要引入线程 – WEB服务器 同时处理多个客户请求 – 创建多个进程降低响应时间 – 进程开销较大(上下文切换) 线程(轻量级进程) – 是CPU调度的一个基本单位
多线程与单线程多线程:操作系统支持在一个进程中有多个执行线程单线程:操作系统不支持线程概念MS-DOS支持单用户进程及单线程传统UNIX支持多用户进程但每进程只支持一个线程现今的操作系统,如Solaris,Windows,支持多线程Solaris:SUN微系统公司开发的一种网络操作系统
多线程与单线程 多线程: 操作系统支持在一个进程中有多个执行 线程 单线程: 操作系统不支持线程概念 MS-DOS 支持单用户进程及单线程 传统 UNIX支持多用户进程但每进程只支持一个 线程 现今的操作系统,如Solaris, Windows, 支持多 线程 Solaris: SUN微系统公司开发的一种网络操作系统
单线程与多线程filesfilescodedatacodedatastackregistersregistersregistersregistersstackstackstackthreadthreadsingle-threadedmultithreaded
单线程与多线程
Threads线程线程是“进程中的一条执行路径或线索”,或“进程中的一个可调度实体”线程不运行时需要保存线程的上下文信息线程有自已的执行堆栈(stack)及一些其于线程的局部变量(localvariables)分配的静态存储单元线程能访问其所属进程所拥有的地址空间和资源某线程更改共享的内存变量,所有其余线程均可见某线程打开的文件名柄其余线程都可使用
Threads 线程 线程是“进程中的一条执行路径或线索”,或“ 进程中的一个可调度实体” 线程不运行时需要保存线程的上下文信息 线程有自己的执行堆栈(stack)及一些其于线程 的局部变量(local variables)分配的静态存储 单元 线程能访问其所属进程所拥有的地址空间和资源 某线程更改共享的内存变量,所有其余线程均可见 某线程打开的文件名柄其余线程都可使用
BenefitsResponsiveness可以获得快速的用户响应,如在C/S模式下,webserver为每个用户连接运行一个线程;RPC服务器中,RPC服务进程会开启多个线程服务于每个RPCrequestResource Sharing进程是拥有资源的基本单位(CPU,地址空间,I/O资源),进程中的线程可以共享这些资源Economy一创建线程比创建进程更快,进程内的线程切换(contextswitch)比进程更快,solaris中创建线程比进程快30倍,线程切换比进程切换快5倍Utilization of SMP Architectures一可以充分利用多处理器体系结构,使得一个进程中的线程在不同的处理器上运行,提高进程执行的并行度
Benefits Responsiveness – 可以获得快速的用户响应,如在C/S模式下,web server为每个用户连接运行一个线程;RPC服务器 中,RPC服务进程会开启多个线程服务于每个RPC request Resource Sharing – 进程是拥有资源的基本单位(CPU,地址空间,I/O 资源),进程中的线程可以共享这些资源 Economy – 创建线程比创建进程更快,进程内的线程切换 (context switch)比进程更快,solaris中创建线程 比进程快30倍,线程切换比进程切换快5倍 Utilization of SMP Architectures – 可以充分利用多处理器体系结构,使得一个进程中 的线程在不同的处理器上运行,提高进程执行的并 行度