在C語言中,可以使用互斥鎖(Mutex)來實現多線程的加鎖。
使用互斥鎖的一般步驟如下:
示例代碼如下:
#include <stdio.h>
#include <pthread.h>
pthread_mutex_t mutex; // 定義互斥鎖
void* thread_func(void* arg) {
pthread_mutex_lock(&mutex); // 加鎖
// 對共享資源進行操作
printf("Thread #%ld is working...\n", (long)arg);
pthread_mutex_unlock(&mutex); // 解鎖
return NULL;
}
int main() {
pthread_t thread1, thread2;
pthread_mutex_init(&mutex, NULL); // 初始化互斥鎖
pthread_create(&thread1, NULL, thread_func, (void*)1);
pthread_create(&thread2, NULL, thread_func, (void*)2);
pthread_join(thread1, NULL);
pthread_join(thread2, NULL);
pthread_mutex_destroy(&mutex); // 銷毀互斥鎖
return 0;
}
在上述示例中,定義了一個互斥鎖變量mutex,并在兩個線程中對互斥鎖進行加鎖和解鎖操作。這樣可以確保同一時間只有一個線程可以訪問共享資源。