一開始會使用到的是初始化的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
沒有留言:
張貼留言