当前位置: 技术问答>linux和unix
百度试题
来源: 互联网 发布时间:2016-03-14
本文导语: 以下代码用到了多线程和多进程,请分析以下程序存的的问题: #include #include #include #include #include #include pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER; const c...
以下代码用到了多线程和多进程,请分析以下程序存的的问题:
#include
#include
#include
#include
#include
#include
pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER;
const char * function3(int *test){
static char strBuff[16];
sprintf(strBuff, "%d", *test);
printf("%s", strBuff);
return strBuff;
}
void *function1(void *arg){
pthread_mutex_lock(&mutex1);
pthread_mutex_lock(&mutex2);
function3((int *)arg);
pthread_mutex_unlock(&mutex2);
pthread_mutex_unlock(&mutex1);
}
void *function2(void *arg){
pthread_mutex_lock(&mutex2);
pthread_mutex_lock(&mutex1);
function3((int *)arg);
pthread_mutex_unlock(&mutex1);
pthread_mutex_unlock(&mutex2);
}
int main(int argc, char *argv[]){
int i=0,childpid=0;
pthread_t a_thread;
pthread_attr_t attr;
pthread_attr_init(&attr);
for(i=0;i
#include
#include
#include
#include
#include
#include
pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t mutex2 = PTHREAD_MUTEX_INITIALIZER;
const char * function3(int *test){
static char strBuff[16];
sprintf(strBuff, "%d", *test);
printf("%s", strBuff);
return strBuff;
}
void *function1(void *arg){
pthread_mutex_lock(&mutex1);
pthread_mutex_lock(&mutex2);
function3((int *)arg);
pthread_mutex_unlock(&mutex2);
pthread_mutex_unlock(&mutex1);
}
void *function2(void *arg){
pthread_mutex_lock(&mutex2);
pthread_mutex_lock(&mutex1);
function3((int *)arg);
pthread_mutex_unlock(&mutex1);
pthread_mutex_unlock(&mutex2);
}
int main(int argc, char *argv[]){
int i=0,childpid=0;
pthread_t a_thread;
pthread_attr_t attr;
pthread_attr_init(&attr);
for(i=0;i
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!