路漫漫其修遠兮,吾將上下而求索
經驗淺薄,耐心積累;記性不好,記諸文字
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-204 評論-149 文章-0 trackbacks-0
POSIX線程和信號量小結
信號量
基本操作
#include
<
semaphore.h
>
int
sem_init(sem_t
*
sem,
int
pshared, unsigned
int
value);
int
sem_wait(sem_t
*
sem);
/**/
/*
P(sem), wait(sem)
*/
int
sem_post(sem_t
*
sem);
/**/
/*
V(sem), signal(sem)
*/
int
sem_getvalue(sem_t
*
sem,
int
*
sval);
int
sem_trywait(sem_t
*
sem);
int
sem_destroy(sem_t
*
sem);
/**/
/*
undo sem_init()
*/
/**/
/*
named semaphores - these are less useful here
*/
sem_t
*
sem_open(
);
int
sem_close(sem_t
*
sem);
int
sem_unlink(
const
char
*
name);
互斥量
基本操作
#include
<
pthread.h
>
int
pthread_mutex_init(pthread_mutex_t
*
mutex, pthread_mutexattr_t
*
attr);
pthread_mutex_t mutex
=
PTHREAD_MUTEX_INITIALIZER;
int
pthread_mutex_lock(pthread_mutex_t
*
mutex);
int
pthread_mutex_unlock(pthread_mutex_t
*
mutex);
int
pthread_mutex_trylock(pthread_mutex_t
*
mutex);
int
pthread_mutex_destroy(pthread_mutex_t
*
mutex);
條件變量
一種信號機制
基本操作
#include
<
pthread.h
>
int
pthread_cond_init(pthread_cond_t
*
cond, pthread_condattr_t
*
attr);
pthread_cond_t cond
=
PTHREAD_COND_INITIALIZER;
int
pthread_cond_wait(pthread_cond_t
*
cond, pthread_mutex_t
*
mutex);
int
pthread_cond_signal(pthread_cond_t
*
cond);
int
pthread_cond_timedwait(
);
int
pthread_cond_broadcast(pthread_cond_t
*
cond);
int
pthread_cond_destroy(pthread_cond_t
*
cond);
互斥量A保護條件變量B
//
等待方
pthread_mutex_lock(
&
A);
while
(
)
{
//
檢查條件是否滿足
pthread_cond_wait(
&
B,
&
A);
}
/**/
/*
wait會隱式解鎖A
*/
/**/
/*
wait后A會被隱式鎖住A
*/
pthread_mutex_unlock(
&
A);
//
通知方
pthread_mutex_lock(
&
A);
pthread_cond_signal(
&
B);
pthread_mutex_unlock(
&
A);
posted on 2009-07-05 01:02
Frank_Fang
閱讀(610)
評論(0)
編輯
收藏
所屬分類:
Linux | ACE網絡編程
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
Posix線程編程指南(5)雜項
Posix線程編程指南(4)
Posix線程編程指南(3)線程同步【轉】
Posix線程編程指南(2)線程私有數據【轉】
Posix線程編程指南(1)線程創建與取消【轉】
void類型和void *指針類型(網上摘抄總結)【轉】
線程同步:何時互斥鎖不夠,還需要條件變量?
POSIX thread (pthread) 簡介
POSIX線程和信號量小結
Linux下進程的各種狀態
<
2009年7月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(1)
給我留言
查看公開留言
查看私人留言
隨筆分類
(204)
Andriod(2)
bcel javassist(9)
C++編程(23)
Design Pattern(36)
JAVA WS(16)
Java 網絡編程(1)
Java編程(44)
JNI(1)
Linux | ACE網絡編程(13)
Python學習(4)
SSH+JQuery+DWR(39)
數據結構與算法(12)
筆試,面試經驗(4)
隨筆檔案
(100)
2009年8月 (17)
2009年7月 (21)
2009年6月 (21)
2009年5月 (32)
2009年4月 (9)
收藏夾
(8)
牛人博客文章鏈接(8)
牛人博客鏈接
搜索
最新評論
1.?re: Java transient關鍵字[未登錄]
@AlexSeeker
volatile屏蔽了重排序優化
--aa
2.?re: Java transient關鍵字
評論內容較長,點擊標題查看
--333
3.?re: Java transient關鍵字
555
--55
4.?re: Java transient關鍵字
很不錯。
--seancheer
5.?re: Java Serializable小結
過來看看
--vacon
閱讀排行榜
1.?Java transient關鍵字(110482)
2.?Struts 注解配置例子及redirect,redirectAction,chain的區別(25240)
3.?static全局變量與普通的全局變量有什么區別?static局部變量和普通局部變量有什么區別?static函數與普通函數有什么區別?(18085)
4.?Java多線程sleep(),join(),interrupt(),wait(),notify()(12814)
5.?線程同步:何時互斥鎖不夠,還需要條件變量?(9240)
評論排行榜
1.?Java transient關鍵字(26)
2.?【轉】用 BCEL 設計字節碼(7)
3.?Struts 注解配置例子及redirect,redirectAction,chain的區別(6)
4.?Java 內存模型及 volatile關鍵字語義(5)
5.?Java多線程sleep(),join(),interrupt(),wait(),notify()(5)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 Frank_Fang
主站蜘蛛池模板:
国产成人免费福利网站
|
999久久久免费精品播放
|
特级淫片国产免费高清视频
|
亚洲白嫩在线观看
|
67pao强力打造国产免费
|
亚洲永久中文字幕在线
|
一色屋成人免费精品网站
|
毛片免费在线视频
|
亚洲午夜在线播放
|
日韩免费三级电影
|
青青草国产免费国产是公开
|
免费二级毛片免费完整视频
|
一级做a爰片性色毛片免费网站
|
国产亚洲成人久久
|
污污网站18禁在线永久免费观看
|
亚洲免费视频在线观看
|
久久国产免费福利永久
|
久久综合久久综合亚洲
|
亚洲精品人成无码中文毛片
|
国产性生大片免费观看性
|
亚洲黄色在线观看视频
|
成人免费男女视频网站慢动作
|
美女裸免费观看网站
|
亚洲欧洲日产国码av系列天堂
|
亚洲中文字幕无码爆乳av中文
|
aaa毛片视频免费观看
|
老色鬼久久亚洲AV综合
|
夜夜嘿视频免费看
|
成人A毛片免费观看网站
|
亚洲综合无码一区二区三区
|
在线观看视频免费国语
|
手机看片国产免费永久
|
亚洲国产精品人久久电影
|
女性无套免费网站在线看
|
a一级爱做片免费
|
亚洲视频精品在线观看
|
国产一级淫片免费播放电影
|
免费看一区二区三区四区
|
亚洲日韩精品无码专区加勒比
|
亚洲成A∨人片在线观看不卡
|
扒开双腿猛进入爽爽免费视频
|