#include <iostream>
#include <unistd.h>
#include <pthread.h>
using namespace std;
int g_val = 0;
pthread_mutex_t mutex;
void* sonThreadFunc(void* param)
{
pthread_mutex_lock(&mutex);
usleep(1000);
++g_val;
usleep(1000);
std::cout << g_val << std::endl;
pthread_mutex_unlock(&mutex);
return NULL;
}
int main()
{
pthread_mutex_init(&mutex, NULL);
pthread_t tid[20];
for(size_t i = 0; i < 20; i++)
{
if(pthread_create(&tid[i], NULL, sonThreadFunc, NULL) != 0)
{
break;
}
}
for(size_t i = 0; i < 20; i++)
{
pthread_join(tid[i], NULL);
}
pthread_mutex_destroy(&mutex);
cout << "Hello World!" << endl;
return 0;
}
Linux多线程-互斥量
最新推荐文章于 2024-06-15 16:46:40 发布