线程池相关

来源:互联网 发布:淘宝卖活体 编辑:程序博客网 时间:2024/06/05 08:52

关于线程条件变量相关解释
http://blog.csdn.net/hairetz/article/details/4535920
这篇比较浅显易懂

int pthread_mutex_init(pthread_mutex_t *restrict mutex,const pthread_mutexattr_t *restrict attr);//函数以动态方式创建互斥锁,参数attr指定了新建互斥锁的属性,如果参数attr为空,则使用默认的互斥锁属性,默认属性为快速互斥锁,该函数成功完成之后会返回0,函数执行成功后互斥锁被初始化成锁住态int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);//条件变量初始化,成功返回0,不能由多个线程同时初始化一个条件变量,当需要重新初始化或释放一个条件变量时,应用程序必须保证这个条件变量未被使用//关于pthread_create()函数的使用#include <stdio.h>#include <stdlib.h>#include <pthread.h>#include <unistd.h>#include <string.h>void printids(const char *s){    pid_t pid;    pthread_t tid;    pid = getpid();    tid = pthread_self();    printf("%s pid %u tid %u (0x%x)\n", s, (unsigned int) pid,            (unsigned int) tid, (unsigned int) tid);}void *thr_fn(void *arg){    printids("new thread: ");    return NULL;}int main(void){    int err;    pthread_t ntid;    err = pthread_create(&ntid, NULL, thr_fn, NULL);    if (err != 0)        printf("can't create thread: %s\n", strerror(err));    printids("main thread:");    pthread_join(ntid,NULL);    return EXIT_SUCCESS;}

线程池的核心思想和与进程池的区别:
进程池利用主进程和子进程之间的通道和信号进行各种协调通信,线程池利用的是条件变量来判别什么时候通知子线程去完成任务。

0 0
原创粉丝点击