多线程
Michael_Liao_
这个作者很懒,什么都没留下…
展开
-
Linux多线程,线程同步
5)线程私有数据 进程内的所有线程共享进程的数据空间,因此全局变量为所有线程所共有。但有时线程也需要保存自己的私有数据,这时可以创建线程私有数据(Thread-specific Date)TSD来解决。在线程内部,私有数据可以被各个函数访问,但对其他线程是屏蔽的。例如我们常见的变量errno,它返回标准的出错信息。它显然不能是一个局部变量,几乎每个函数都应该可以调用它;但它又不能是一转载 2013-03-08 15:50:00 · 411 阅读 · 0 评论 -
Linux操作系统下的多线程编程详细解析
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。 现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到转载 2013-03-08 15:39:27 · 537 阅读 · 0 评论 -
Linux多线程,线程的分离与结合
(2)线程的分离与结合 在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回收或杀死的,它的存储器资源在它终止时由系统自动释放。 线程的分离状态决定一个线程以什么样的方式来终止自己。在上面的例子中,我转载 2013-03-08 15:51:31 · 470 阅读 · 0 评论 -
Linux多线程,基本概念
说明:以下内容,根据参考中【1~6】内容整理而得。 一、基本概念 1、线程是计算机中独立运行的最小单位。进程是分配资源的单位。 2、为什么使用多线程? (1)启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据,启动一个线程转载 2013-03-08 15:52:16 · 445 阅读 · 0 评论 -
Linux多线程,线程同步(2)
2)条件变量(cond) 利用线程间共享的全局变量进行同步的一种机制。条件变量上的基本操作有:触发条件(当条件变为 true 时);等待条件,挂起线程直到其他线程触发条件。 int pthread_cond_init(pthread_cond_t *cond,pthread_condattr_t *cond_attr); int pthread_cond_wait(转载 2013-03-08 15:49:05 · 457 阅读 · 0 评论