最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

線程基本操作 (1)簡介

2022-09-25 14:22 作者:GXTon_阿通  | 我要投稿

在單進程環(huán)境中,執(zhí)行多個任務(wù).
一個進程中的所有線程都可以訪問該進程的組成部件(文件描述符,內(nèi)存...).
共享總會帶來一致性問題,需要有同步機制.防止多個線程在共享資源時出現(xiàn)不一致的問題.

線程的好處,
1,同步編程模式,用于簡化異步事件的處理.
2,多個進程,必須使用操作系統(tǒng)提供的復(fù)雜機制才能實現(xiàn)內(nèi)存和文件描述符的共享.
多個線程則簡單許多,可以自動的訪問相同的存儲地址空間和文件描述符.
3,把串行的邏輯并行化.
4,加快響應(yīng),可以把交互的部分,如用戶輸入部分,與程序中其他部分分開.
5,雖然,多線程程序在串行任務(wù)中不得不用阻塞編程,但在阻塞的時候,仍可以進行其他線程,所以程序整體的吞吐量和時間響應(yīng)是有改善的.


進程,線程都包含哪些東西:
線程是程序最基本的運行單位,而進程不能運行.進程可以看做容器.
進程包含線程運行所需要的:數(shù)據(jù)結(jié)構(gòu),環(huán)境變量等數(shù)據(jù).

每個線程都包含有表示執(zhí)行環(huán)境所必須的信息,
1,進程中標識線程的線程ID,
2,一組寄存器值,
3,棧
4,調(diào)度優(yōu)先級和策略,
5,信號屏蔽字,
6,errno變量,
7,線程私有數(shù)據(jù),

一個進程的所有信息,對該進程的所有線程都是共享的,包括:
1,可執(zhí)行程序的代碼,
2,程序的全局內(nèi)存和堆內(nèi)存,
3,棧,
4,文件描述符


進程與線程的對比:
1,籠統(tǒng)的說: 大程序用進程,小程序用線程;
2,進程切換開銷大:運行代碼多,消耗時間長.
3,進程通信較為麻煩.每個進程都由各自的地址空間,相互獨立.并且隔離.
4,進程創(chuàng)建的速度慢.
5,多線程在多核處理器上有更大的優(yōu)勢.
6,多線程編程難度高,需要考慮線程安全,信號處理等問題.

串行: 每次只做一件事,一件接著一件做;
并發(fā):交替做不同的事;
并行:同時做不同的事;


線程標識(線程ID)

線程ID,就像一個人的身份證,是系統(tǒng)頒發(fā)的,不需要指定.需要定義一個變量保存就行了.
linux中很多思想都是這樣,一些可以讓系統(tǒng)自己管理的,都會自行管理,然后會有接口進行數(shù)據(jù)的操作.


進程ID: pid_t 的結(jié)構(gòu)體.

線程ID: pthread_t 的結(jié)構(gòu)體.

函數(shù)

linux系統(tǒng)中定義了ID這個參數(shù),
而這個參數(shù)是linux自己分配的,也就是它要進行管理,
所以也就有了操作這個ID參數(shù)對應(yīng)的函數(shù).

(編程的思路就是這樣,創(chuàng)建一些變量,結(jié)構(gòu)體,,,,然后再創(chuàng)建一些函數(shù)操作,搬運這些數(shù)據(jù).)


1,獲取線程本身的ID


2,對兩個線程ID值進行比較

可以通過mam,進行查看系統(tǒng)留給我們操作變量的函數(shù).

上圖中: Compile and link with -pthread 就是說要手動鏈接到pthread庫才行.
關(guān)于pthread的其他函數(shù)基本也需要.
所以為了方便,可以建立一個Makefile,在里面輸入下面的內(nèi)容,然后編譯的時候,直接make就行:
CFLAGS+=-pthread
LDFLAGS+=-pthread

上面的 CFLAGS 和 LDFLAGS 都是Makefile的參數(shù).
CFLAGS,是GCC編譯選項參數(shù).
LDFLAGS,是GCC鏈接選項參數(shù).

包含有線程的程序結(jié)構(gòu):(如何利用線程,搭起程序框架)







線程基本操作 (1)簡介的評論 (共 條)

分享到微博請遵守國家法律
通州市| 黄浦区| 尤溪县| 惠东县| 灵山县| 上杭县| 甘泉县| 团风县| 阿图什市| 灌云县| 镇原县| 凤山市| 托克逊县| 吐鲁番市| 噶尔县| 梅州市| 子洲县| 龙游县| 司法| 安图县| 墨玉县| 辰溪县| 蒲江县| 河北区| 昌江| 奈曼旗| 左权县| 抚宁县| 尼勒克县| 阳新县| 淳安县| 凤庆县| 宿松县| 红安县| 淮南市| 喀喇沁旗| 宝坻区| 扬州市| 承德县| 铁岭市| 卓资县|