初始化
phtread_mutex_t
型別的變數時有兩種方法:一種為使用巨集
pthread_mutex_initializer
進行初始化,另外一種是使用函式
pthread_mutex_init
函式。第一種方法僅侷限於靜態初始化的時候使用:將「宣告」、「定義」、「初始化」一氣呵成,除此之外的情況都只能使用
pthread_mutex_init
函式。
下面是一段很簡單的測試**:
/** main.c
** created on: jul 22, 2012
* author: lichao
*/#include "lc_error.h"
#include
intmain(
intargc,
char
*ar**)
編譯後提示以下錯誤:
[lichao@sg01 mutex_init]$ makegcc -c -rdynamic -i. -i/u1/lichao/gpp/include/ -i/u1/lichao/include -o "main.o"
"main.c"
main.c: in function 『main』:
main.c:17: error: expected expression before 『 } }
所以,確切的說,17行的錯誤並不是針對於mutex變數,而是所有的結構體變數。結構體變數在使用常量進行整體初始化的時候只能在宣告的時候進行,不能是宣告結束之後。以下為一段簡單的測試**:
/** main.c
** created on: jul 22, 2012
* author: lichao
*/#include "lc_error.h"
#include
typedef
struct
point;
intmain(
intargc,
char
*ar**)
; point y ;
y = ;
return
0; }
編譯後你會發現和上面呈現出一樣的錯誤結果。
互斥鎖pthread mutex t的使用
2011 01 27 10 22 07 分類 linux 標籤 字型大小 大中小訂閱 1.互斥鎖建立 有兩種方法建立互斥鎖,靜態方式和動態方式。posix定義了乙個巨集pthread mutex initializer來靜態初始化互斥鎖,方法如下 pthread mutex t mutex pthr...
互斥鎖pthread mutex t的使用
1.互斥鎖建立 有兩種方法建立互斥鎖,靜態方式和動態方式。posix定義了乙個巨集pthread mutex initializer來靜態初始化互斥鎖,方法如下 pthread mutex t mutex pthread mutex initializer 在linuxthreads實現中,pthr...
使用pthread mutex t鎖的例子
linux下為了多執行緒同步,通常用到鎖的概念。posix下抽象了乙個鎖型別的結構 ptread mutex t。通過對該結構的操作,來判斷資源是否可以訪問。顧名思義,加鎖 lock 後,別人就無法開啟,只有當鎖沒有關閉 unlock 的時候才能訪問資源。它主要用如下5個函式進行操作。1 pthre...