如果一个pthread_mutext_t已经被初始化过了,但是还没被使用过,那么我可不可以再次对这个mutex调用pthread_mutex_init()进行第二次初始化?多次调用pthread_mutex_init()之后需要多次调用pthread_mutex_destroy()吗? 谢谢。
1.在栈上分配一个互斥量并初始化后(pthread_mutex_init()),必须调用pthread_mutex_destroy()吗? 2.动态分配一个互斥量(malloc)并初始化后(pthread_mutex_init()),在调用free之前为什么必须调用pthread_mutex_destroy()吗? pthread_mutex_destroy()到底起什么作用
class Inc:public Thread { public: Inc(int id, int *inc):Thread(id), value(inc){}; private: int *value; void run() { this->lock.enterCriticSection(); for(int i = 0; i < 30; ++i) { std::cout << (*value)++ << " thread_id " << this->id << std::endl; int s; for(int j = 0; j < 40000; ++j) //为了让cpu执行到时间片完而让与给其他线程 s++; } this->lock.leaveCriticSection(); } }; ...
我申请了pthread_mutex_t game_mut[MAX_GAMES]; 数组,并在主线程中进行了初始化
[code] for (i=0;i
一下代码源于http://www.unpbook.com/unpv13e.tar.gz,在unpv13e/server下. pthread08.c: #include "unpthread.h" #include "pthread08.h" void thread_make(int i) { void *thread_main(void *); pthread_create(&tptr.thread_tid, NULL, &thread_main, (void *) i); return; /* main thread returns */ } void * thread_main(void *arg) { int connfd; void web_child(int); printf("thread %d starting\n", (...
pthread_mutex_t mutex; pthread_mutex_init(&mutex, NULL); void func() { pthread_mutex_lock(&mutex); // codings pthread_mutex_unlock(&mutex); } 问题: 1 一个线程A调用该函数(执行过程中),同时另一个线程B也调用该函数,B是被阻塞还是lock失败返回(man 中好象没有对这个进行说明呀 锁初始化时 type 指定为default) 2 是原子操作吗? codings执行中来了一个信号,线程如何动作??
这段代码那里有错误呢?执行的时候返回段错误。
#include<pthread.h>
#include