www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 嵌入式大雜燴
[導(dǎo)讀]點(diǎn)擊藍(lán)字關(guān)注我們本文探討PODIX線程相關(guān)內(nèi)容。線程的概念什么是多線程,提出這個(gè)問(wèn)題的時(shí)候,我還是很老實(shí)的拿出操作系統(tǒng)的書(shū),按著上面的話敲下“為了減少進(jìn)程切換和創(chuàng)建開(kāi)銷,提高執(zhí)行效率和節(jié)省資源,我們引入了線程的概念,與進(jìn)程相比較,線程是CPU調(diào)度的一個(gè)基本單位。”當(dāng)Linux最初...



本文探討PODIX線程相關(guān)內(nèi)容。


線程的概念

什么是多線程,提出這個(gè)問(wèn)題的時(shí)候,我還是很老實(shí)的拿出操作系統(tǒng)的書(shū),按著上面的話敲下“為了減少進(jìn)程切換和創(chuàng)建開(kāi)銷,提高執(zhí)行效率和節(jié)省資源,我們引入了線程的概念,與進(jìn)程相比較,線程是CPU調(diào)度的一個(gè)基本單位?!?


當(dāng) Linux 最初開(kāi)發(fā)時(shí),在內(nèi)核中并不能真正支持線程。那為什么要使用多線程?


使用多線程的理由之一是和進(jìn)程相比,它是一種非常"節(jié)儉"的多任務(wù)操作方式。運(yùn)行于一個(gè)進(jìn)程中的多個(gè)線程,它們彼此之間使用相同的地址空間,共享大部分?jǐn)?shù)據(jù),啟動(dòng)一個(gè)線程所花費(fèi)的空間遠(yuǎn)遠(yuǎn)小于啟動(dòng)一個(gè)進(jìn)程所花費(fèi)的空間,而且,線程間彼此切換所需的時(shí)間也遠(yuǎn)遠(yuǎn)小于進(jìn)程間切換所需要的時(shí)間。


那么線程是干什么的呢?簡(jiǎn)要概括下線程的職責(zé):線程是程序中完成一個(gè)獨(dú)立任務(wù)的完整執(zhí)行序列。


線程的管理

創(chuàng)建線程

#include
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
void *(*start_routine) (void *), void *arg)
;
- thread:線程id,唯一標(biāo)識(shí)


- attr:線程屬性,參數(shù)可選


- start_routine:線程執(zhí)行函數(shù)


- arg:傳遞給線程的參數(shù)


Demo1:創(chuàng)建一個(gè)線程


#include
#include

void *workThreadEntry(void *args)
{
char*str = (char*)args;
printf("threadId:%lu,argv:%s\n",pthread_self(),str);
}
int main(int argc,char *agrv[])
{
pthread_t thread_id;
char*str = "hello world";
pthread_create(
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。

嵌入式大雜燴

461 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉