樂魚體育 - 操作係統光盤下載網站!

當前位置: 首頁 ?>? 教程資訊 ?>? Linux教程 線程同步的方法有哪些?Linux下實現線程同步的三

線程同步的方法有哪些?Linux下實現線程同步的三

時間:2019-10-05 來源: 人氣:

線程同步的方法有哪些?在linux下,係統提供了很多種方式來實現線程同步,其中最常用的便是互斥鎖、條件變量和信號量這三種方式,可能還有很多夥伴對於這三種方法都不熟悉,下麵就給大家詳細介紹下。
 
線程同步的方法有哪些?Linux下實現線程同步的三種方法
 
  Linux下實現線程同步的三種方法:
 
  一、互斥鎖(mutex)
 
  通過鎖機製實現線程間的同步。
 
  1、初始化鎖。在Linux下,線程的互斥量數據類型是pthread_mutex_t。在使用前,要對它進行初始化。
 
  靜態分配:pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 
  動態分配:int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutex_attr_t *mutexattr);
 
  2、加鎖。對共享資源的訪問,要對互斥量進行加鎖,如果互斥量已經上了鎖,調用線程會阻塞,直到互斥量被解鎖。
 
  int pthread_mutex_lock(pthread_mutex *mutex);
 
  int pthread_mutex_trylock(pthread_mutex_t *mutex);
 
  3、解鎖。在完成了對共享資源的訪問後,要對互斥量進行解鎖。
 
  int pthread_mutex_unlock(pthread_mutex_t *mutex);
 
  4、銷毀鎖。鎖在是使用完成後,需要進行銷毀以釋放資源。
 
  int pthread_mutex_destroy(pthread_mutex *mutex);

作者 admin

教程資訊

Linux教程排行

係統教程

主題下載