Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59150
  • 博文数量: 32
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 325
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-28 21:50
文章分类

全部博文(32)

文章存档

2011年(1)

2010年(6)

2009年(25)

我的朋友

分类: LINUX

2010-02-01 21:10:22

  • 本章小结:主要讲了POSIX线程机制的基本知识,如何创建新的线程,如何等待线程的返回,如何完全地在线程间共享数据以及线程如何与其他线程互通消息。共享数据是本章的一个重点。
  • 执行线路为程序的控制流程。pthreads的线程库允许程序在同一时刻运行多个函数(即线程)。同时执行的各函数(线程)都拥有自己的局部变量,但共享同一进程所有的全局变量和动态分配的数据空间
    创建线程:pthread_create
    等待线程返回:pthread_join

  • 当线程共享变量时,必须保证它们不会发生共享冲突。线程使用互斥锁来保证在某一时刻只有一个线程在对共享变量访问。
    即使用pthread_mutex_lock,pthread_mutex_unlock

  • 线程间互通消息。通过条件变量来互相通知和同步数据。一个线程挂起并等待着条件变量按照某种特定方式变化,而另一个线程发信号使得条件变量发生变化
    pthread_cond_wait
    pthread_cond_signal

  • 线程间需要使用互斥量来避免对于共享资源操作函数的访问冲突。

  • 防止僵尸线程:独立线程。(Detached Threads)
    当函数(即线程)执行完毕之后,独立线程自动释放它所占用的所有的资源,它们自身甚至也不允许等待其他的线程返回。
    pthread_attr_setdetached

  • 本章所用到的系统调用
    1、创建与返回pthread_create、pthread_join
    2、互斥量pthread_mutex_lock、pthread_mutex_unlock
    3、条件变量pthread_cond_wait、pthread_cond_signal
    4、pthread_cancel

    关于独立线程
    /*creating a detached thread*/
    pthread_t t;
    pthread_attr_t attr_detached;
    pthread_attr_init(&attr_detached);
    pthread_attr_setdetached(&attr_detached,PTHREAD_CREATE_DETACHED);
    pthread_create(&t,&attr_detached,func,arg)

阅读(336) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~