星期三, 3月 08, 2017

[ C ] pthread_create 用法 (二) mutex


一開始會使用到的是初始化的function,
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restric attr);

把宣告好的pthread_mutex_t變數丟給他,代表幫我清空裡面的東西。
或者另一種做法,
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

最後如果不要用mutex了,那記得把他銷毀。
int pthread_mutex_destroy(pthread_mutex_t *mutex);

這裡試著使用trylock這個function,
pthread_mutex_trylock(pthread_mutex_t *mutex);

他會嘗試著去lock住mutex,但如果mutex被佔住,
他不會繼續等下去。
如果失敗會回傳"EBUSY",如果成功會回傳"0"。

Note:
這個會先拿掉,因為他會等這個thread做完才繼續,
但這樣我就看不到trylock的功用。
pthread_join(thread[i], NULL);



SourceCode

Ref
Ref_2
Ref_3

沒有留言: