Linux的多任务编程(8)

/* -------------------------------------------------------------------------
 * testpool.c – 线程池测试程序
 * -------------------------------------------------------------------------
 */

#include <pthread.h>
#include "log.h"
#include "tpool.h"

log_t *log;  /*进程全局日志文件句柄*
/*任务*/
void thread(void *arg)
{
  char * ptr=(char *)arg;
 
  sleep(1);
  printf("hello world! %s\n",ptr);
}

int main(int argc, char *argv[])
{
    tpool_t *pool;  /*线程池指针*/
 
    /* 开启记录文件 */
    log=log_open("test.log", 0);
    /* 创建一个有100个工作线程,最大200个任务队列的线程池 */
    pool=tpool_init(100,200,1);
    int i;
    /* 开启记录文件 */
    * 添加100个任务*/
    for (i = 0; i<100;i++)
      tpool_add_work(pool,thread,"test!");
    sleep(10);
    /*终止线程池*/
    tpool_destroy(pool,1);
    /* 关闭记录文件 */
    log_close(log);
    pthread_exit(NULL);
}

该例子演示了如何建立一个线程池,以及如何记录程序的运行状态,有一定的使用意义,稍加修改就可以应用到实际的项目中.能理解其中的设计思想和技巧,对自己编程能力的提高有很大的提高

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2171544ed330f750996edb69a5ca4e43.html