当前位置:  技术问答>linux和unix

pthread_atfork()函数使用

    来源: 互联网  发布时间:2017-04-11

    本文导语:  看下面一段代码: #include "apue.h" #include  pthread_mutex_t lock1 = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t lock2 = PTHREAD_MUTEX_INITIALIZER; void prepare(void) { printf("preparing locks...n"); pthread_mutex_lock(&lock1); pthread_mutex_lock(&lock2); } void ...

看下面一段代码:
#include "apue.h"
#include 

pthread_mutex_t lock1 = PTHREAD_MUTEX_INITIALIZER;
pthread_mutex_t lock2 = PTHREAD_MUTEX_INITIALIZER;

void
prepare(void)
{
printf("preparing locks...n");
pthread_mutex_lock(&lock1);
pthread_mutex_lock(&lock2);
}

void
parent(void)
{
printf("parent unlocking locks...n");
pthread_mutex_unlock(&lock1);
pthread_mutex_unlock(&lock2);
}

void
child(void)
{
printf("child unlocking locks...n");
pthread_mutex_unlock(&lock1);
pthread_mutex_unlock(&lock2);
}

void *
thr_fn(void *arg)
{
printf("thread started...n");
pause();
return(0);
}

int
main(void)
{
int err;
pid_t pid;
pthread_t tid;

#if defined(BSD) || defined(MACOS)
printf("pthread_atfork is unsupportedn");
#else
if ((err = pthread_atfork(prepare, parent, child)) != 0)
err_exit(err, "can't install fork handlers");
err = pthread_create(&tid, NULL, thr_fn, 0);
if (err != 0)
err_exit(err, "can't create thread");
sleep(2);
printf("parent about to fork...n");
if ((pid = fork()) 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,