執行緒的同步:用的是訊號燈來實現1. 執行緒訊號燈的初始化
- include - sem_t sem; int
sem_init(sem_t *sem, int pshared, unsigned int
value);
****編譯時後面如**gcc xx.c -o xx -pthread
功能:訊號燈的初始化
引數: sem : 訊號燈的標誌
pshared :
0 --->在當前程序中都可以使用該訊號燈
value : 值 訊號的燈的數量
返回值: 成功返回0 失敗返回-1
並設定error
-實現訊號燈的pv操作
p :減法操作
#include
int sem_wait(sem_t *sem);
功能: p操作,如果不夠減,就阻塞等待
引數: sem : 訊號燈
返回值: 成功返回0 失敗返回-1
並設定error
-v :加法操作
#include
int sem_post(sem_t *sem);
link with -pthread.
功能: v操作 給value做加法操作
引數: sem : 訊號燈
返回值:
成功返回0
失敗返回-1 並設定error
#include #include#include
#include
#include
sem_t sem;
void *show1(void *arg)
sem_post(&sem);
pthread_exit(null);
return
null;
}void *show2(void *arg)
pthread_exit(null);
//sem_post(&sem);
return
null;
}int main(void
) pthread_t thread1;
///執行緒1
if(pthread_create(&thread1,null,show1,null))
///設定分離屬性分離屬性
if(pthread_detach(thread1))
///建立執行緒2
pthread_t thread2;
if(pthread_create(&thread2,null,show2,null))
//設定分離屬性分離屬性2
if(pthread_detach(thread2))
while(1
);
return0;
}
同步 執行緒同步
操作執行的先後順序。同步指兩個或兩個以上隨時間變化的量在變化過程中保持一定的相對關係。同步 英語 synchronization 指對在乙個系統中所發生的事件 event 之間進行協調,在時間上出現一致性與統一化的現象。在系統中進行同步,也被稱為及時 in time 同步化的 synchronous...
執行緒的同步
多執行緒共享資料引發的問題 用乙個簡單的例子來說,就是我們經常遇到的過年搶車票的問題,以前人們是去車站排隊,先到先得,現在隨著網際網路的發展,我們可以在網上購票了,現在我們使用多執行緒來模擬搶票過程,每個人機會一樣。關鍵 如下 執行緒不安全的網路搶票 public class site implem...
執行緒同步 執行緒同步跟Runnable的區別
執行緒同步 建立多條執行緒,要一條執行緒執行完run 方法,下乙個執行緒才能進入run 方法,執行緒同步就是為了避免同一條件下不允許多條執行緒同時進入而製造出來的方法。runnable跟同步的區別 runnable在同一條件下可以同時進入多條執行緒,而同步不行,runable資料共享。例子,售票台有...