1. 程式人生 > >什麽是Linux編程?Linux編程培訓哪個好?

什麽是Linux編程?Linux編程培訓哪個好?

雲計算

想知道Linux編程培訓哪個好?先來了解一下什麽是Linux編程吧!Linux編程,比需要了解線程的問題。

線程的信號量主要就是實現對公共資源的一種控制管理。當公共資源增加時,信號量的值增加;當公共資源減少時,信號量的值減少;只有信號量的值大於0時,才能訪問信號量所代表的公共資源。其實功能和之前的ucos的信號量功能類似。

1 線程信號量初始化sem_init

 int sem_init(sem_t *sem, int pshared, unsigned int value);

功能介紹:

該函數主要的功能是創建一個信號量,設置該信號量的值,並且設置信號量的使用範圍。信號量創建成功後,可以對其進行加減操作。

參數說明:

第一個參數sem是一個指向信號量結構的指針,當信號量初始化成功後,可以的這個信號量指針進行加減操作;第二個參數表示信號量的共享屬性,當其值不為0時,信號量可以在進程間共享,如果等於0,則只能在同一個進程中的多個線程間共享;第三個參數用於設置信號量初始化時候的值。

2 線程信號量增加函數sem_post

  int sem_post(sem_t *sem);

功能介紹:

該函數用於增加信號量的值,每次增加值為1。當有線程在等待該信號量,則等待信號量返回,不增加信號量的值。

參數說明:sem參數是初始化時候創建的信號量結構體,用於記錄信號量值得參數。

3 線程信號量減少函數sem_wait

  int sem_wait(sem_t *sem);

功能介紹:

該函數用於減少信號量的值,每次減少值為1。當信號量的值為0,則線程會阻塞一直等待信號量的值大於0為止,當值為0時,不在減少。

參數說明:

  sem參數是初始化時候創建的信號量結構體。

4 線程信號量的銷毀函數sem_destroy

  int sem_destroy(sem_t *sem);

功能介紹:

函數用於釋放創建的信號量。

參數說明:

  sem參數是初始化時候創建的信號量結構體。

使用線程的信號量進行通信,可以有效的對線程資源進行合理的分配,同時可以使線程以一個合理的方式進行調度。下面的代碼是一個小小的實例,用很常規的方法來使用信號量,當線程獲得獲得信號量之後,在處理完相應的操作之後會主動的釋放掉信號量。其實可以根據信號量的wait和post自己設計使用信號量。不過需要註意的是在wait和post函數分開使用時,可能會因為線程優先級等問題,post和wait被調用的次數不是對等的,這時候這時候可能出現的問題是不可控的,在這種方式設計程序時,需要把大部分的情況考慮進去,當然可能出現的情況的種數也是從0到1質變,從1到n量變得過程。

什麽是Linux編程?Linux編程培訓哪個好?