路漫漫其修遠兮,吾將上下而求索
經驗淺薄,耐心積累;記性不好,記諸文字
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
主站蜘蛛池模板:
免费被黄网站在观看
|
97视频免费在线
|
亚洲精品视频在线看
|
亚洲精品无码成人
|
好大好硬好爽免费视频
|
日韩亚洲产在线观看
|
国产日本一线在线观看免费
|
亚洲无人区视频大全
|
免费看国产成年无码AV片
|
国产精品亚洲片在线va
|
国产香蕉九九久久精品免费
|
亚洲色大情网站www
|
国产青草视频在线观看免费影院
|
国产偷国产偷亚洲清高APP
|
亚洲国产精品狼友中文久久久
|
一区在线免费观看
|
亚洲成AV人片天堂网无码
|
一级毛片免费观看不卡视频
|
亚洲香蕉久久一区二区三区四区
|
精品久久久久久久免费人妻
|
美女被艹免费视频
|
亚洲日本va中文字幕久久
|
亚洲成人免费在线
|
中文字幕亚洲码在线
|
免费一级毛片在线播放不收费
|
国产精品小视频免费无限app
|
亚洲AV无码成人专区片在线观看
|
1000部啪啪毛片免费看
|
亚洲国产精品18久久久久久
|
亚洲熟伦熟女新五十路熟妇
|
中文字幕乱码亚洲精品一区
|
免费真实播放国产乱子伦
|
国产大片免费天天看
|
亚洲精品福利在线观看
|
日韩电影免费在线观看视频
|
97超高清在线观看免费视频
|
亚洲av产在线精品亚洲第一站
|
免费v片在线观看无遮挡
|
欧洲人成在线免费
|
亚洲成a人片在线观看天堂无码
|
亚洲综合一区二区国产精品
|