我正在使用线程运行2个功能 打印," -----"和" ########"。
我正在尝试使用互斥锁,因为我认为它应该阻止任何传入的线程,但是当我使用锁定互斥锁时它不会阻止任何传入的线程,你能看到结果(在那里)。 我很想知道mutex的作用是什么,或者是没有正常运行的互斥体。
喜欢听你的意见......谢谢:D
我正在使用GNU gcc编译器 - 从Mingw网站上下载
#include <pthread.h>
#include <mutex>
#include <iostream>
using namespace std;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
void* print (void* e){
pthread_mutex_lock(&mutex);
while(1){
cout << "########" <<endl;
}
pthread_mutex_unlock(&mutex);
}
void* print1 (void* e){
while(1){
cout << "-----" <<endl;
}
}
int main(){
pthread_t* threads;
threads = new pthread_t;
//------------------------------------
pthread_t* threads1;
threads1 = new pthread_t;
//-------------------------------------
pthread_create(threads,NULL,print,(void*)NULL);
pthread_create(threads1,NULL,print1,(void*)NULL);
getchar();
return false;
}
// --------------------结果:
"########"
"-----"
"########"
"-----"
"########"
"-----"
"########"
.....
.....
使用pthread_mutex_lock我会表达类似的内容:
"########"
"########"
"########"
"########"
"########"
"########"
infinit .....