UNIX(多线程):01---线程简介及线程限制
一、線程的概念
典型的UNIX進(jìn)程可以看成只有一個(gè)控制線程:一個(gè)進(jìn)程在同一時(shí)刻只做一件事。有了多個(gè)控制線程后,在程序設(shè)計(jì)時(shí)可以把進(jìn)程設(shè)計(jì)成在同一時(shí)刻能夠做不止一件事,每個(gè)線程處理各自獨(dú)立的任務(wù)
二、線程的優(yōu)點(diǎn)
通過為每種事件類型分配單獨(dú)的處理線程,可以簡化處理異步事件的代碼。每個(gè)線程在進(jìn)行事件處理時(shí)可以采用同步編程模式,同步編程模式要比異步編程模式簡單得多
同一進(jìn)程多個(gè)線程可以自動(dòng)的共享相同的存儲地址空間和文件描述符
有些問題可以分解從而提高整個(gè)程序的吞吐量。在只有一個(gè)控制線程的情況下,一個(gè)單線程進(jìn)程要完成多個(gè)任務(wù),只需要把這些任務(wù)串行化。但是有多個(gè)控制線程時(shí),相互獨(dú)立的任務(wù)的處理就可以交叉進(jìn)行,此時(shí)只需要為每個(gè)任務(wù)分配一個(gè)單獨(dú)的線程。當(dāng)然只有在兩個(gè)任務(wù)的處理過程相互不依賴的情況下,兩個(gè)任務(wù)才可以交叉執(zhí)行
交互的程序同樣可以通過多線程來改善響應(yīng)事件,多線程可以把程序中處理用戶輸入輸出的部分與其他部分分開
三、線程的其它特點(diǎn)
有些人把多線程的程序設(shè)計(jì)與處理器或多核系統(tǒng)聯(lián)系起來。但是即使程序運(yùn)行在單處理器上,也能得到多線程編程模型的好處。處理器的數(shù)量并不影響程序結(jié)構(gòu),所以不管處理器的個(gè)數(shù)多少,程序都可以通過使用線程得以簡化。而且,即使多線程程序在串行化任務(wù)時(shí)不得不阻塞,由于某些線程在阻塞時(shí)還有另一些線程可以運(yùn)行,所以多線程在單處理器上運(yùn)行還是可以改善響應(yīng)時(shí)間和吞吐量
每個(gè)線程都含有表示執(zhí)行環(huán)境所必須的信息:其中包括進(jìn)程中標(biāo)識線程的線程ID, 一組寄存器值、棧、調(diào)度優(yōu)先級和策略
總結(jié)
以上是生活随笔為你收集整理的UNIX(多线程):01---线程简介及线程限制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++的虚拟继承 的一些思考吧
- 下一篇: lua的一些api文档总结吧