1、引言 目前,先進(jìn)的嵌入式計(jì)算機(jī)以其優(yōu)良的品質(zhì)、高可靠性及模塊化,廣泛地應(yīng)用于工業(yè)控制、航空航天、醫(yī)療、智能儀表、通信、數(shù)控、自動(dòng)化生產(chǎn)設(shè)備、數(shù)據(jù)采集等領(lǐng)域。在實(shí)際應(yīng)用中,有時(shí)需要借助
Linux系統(tǒng)下的多線程遵循POSIX線程接口,稱為pthread。編寫Linux下的多線程程序,需要使用頭文件pthread.h,連接時(shí)需要使用庫(kù)libpthread.a。順便說(shuō)一下,Linux下pthread的實(shí)現(xiàn)是通過(guò)系統(tǒng)調(diào)用clone()來(lái)實(shí)現(xiàn)的。clone()是Linux所特有的系統(tǒng)調(diào)用,它的使用方式類似fork,關(guān)于clone()的詳細(xì)情況,有興趣的讀者可以去查看有關(guān)文檔說(shuō)明。
前面已經(jīng)提到,進(jìn)程是系統(tǒng)中程序執(zhí)行和資源分配的基本單位。每個(gè)進(jìn)程都擁有自己的數(shù)據(jù)段、代碼段和堆棧段,這就造成了進(jìn)程在進(jìn)行切換等操作時(shí)都需要有比較復(fù)雜的上下文切換等動(dòng)作。為了進(jìn)一步減少處理機(jī)的空轉(zhuǎn)時(shí)間,支持多處理器以及減少上下文切換開銷,進(jìn)程在演化中出現(xiàn)了另一個(gè)概念——線程。
“生產(chǎn)者消費(fèi)者”問題是一個(gè)著名的同時(shí)性編程問題的集合。通過(guò)學(xué)習(xí)經(jīng)典的“生產(chǎn)者消費(fèi)者”問題的實(shí)驗(yàn),讀者可以進(jìn)一步熟悉Linux中的多線程編程,并且掌握用信號(hào)量處理線程間的同步和互斥問題。
本章首先介紹了線程的基本概念、線程的分類和特性以及線程的發(fā)展歷程。
這里要講的線程相關(guān)操作都是用戶空間中的線程的操作。在Linux中,一般pthread線程庫(kù)是一套通用的線程庫(kù),是由POSIX提出的,因此具有很好的可移植性。
華清遠(yuǎn)見為您帶來(lái)經(jīng)典教程:嵌入式Linux應(yīng)用程序開發(fā)
互斥量從本質(zhì)上說(shuō)就是一把鎖, 提供對(duì)共享資源的保護(hù)訪問。
作者Email: zoutom@163.com 摘要:介紹了QNX實(shí)時(shí)操作系統(tǒng)和多線程編程技術(shù),包括線程間同步的方法、多線程程序的分析步驟、線程基本程序結(jié)構(gòu)以及實(shí)用編譯方法。 關(guān)鍵詞:QN
1 引言線程(thread)技術(shù)早在60年代就被提出,但真正應(yīng)用多線程到操作系統(tǒng)中去,是在80年代中期,solaris是這方面的佼佼者。傳統(tǒng)的 Unix也支持線程的概念,但是在一個(gè)進(jìn)程(process)中只允許有一個(gè)線程,這樣多線程就意
Linux下的多線程編程
Linux下的多線程編程
Linux多線程編程和Linux 2.6下的NPTL
Linux多線程編程和Linux 2.6下的NPTL
QNX環(huán)境下多線程編程
QNX環(huán)境下多線程編程