linux 线程
elbort
这个作者很懒,什么都没留下…
展开
-
pthread_cond 应用
一、家庭成员:pthread_cond_t cond = PTHREAD_COND_INITIALIZER;int pthread_cond_init(pthread_cond_t *cond,pthread_condattr_t *cond_attr);int pthread_cond_signal(pthread_cond_t *cond);int pthread_cond原创 2012-05-29 17:04:52 · 1775 阅读 · 0 评论 -
pthread_mutex 应用
一、 pthread_mutex 家庭成员:1.int pthread_mutex_init (pthread_mutex_t *mutex , pthread_mutexattr_t *attr );Description The pthread_mutex_init function initializes the given mutex with the given at原创 2012-05-25 18:22:20 · 9532 阅读 · 0 评论 -
Posix多线程编程学习笔记(六)—共享内存(2)
三、posix共享内存函数posix共享内存区涉及两个步骤:1、指定一个名字参数调用shm_open,以创建一个新的共享内存区对象或打开一个以存在的共享内存区对象。2、调用mmap把这个共享内存区映射到调用进程的地址空间。传递给shm_open的名字参数随后由希望共享该内存区的任何其他进程使用。 5.名称::shm_open功转载 2012-05-22 11:37:05 · 336 阅读 · 0 评论 -
Posix多线程编程学习笔记(五)—条件变量(1)
一、什么是条件变量 与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。 条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检转载 2012-05-22 11:19:57 · 274 阅读 · 0 评论 -
Posix多线程编程学习笔记(三)—信号灯(3)
4.posix有名信号灯应用于多进程下面就是应用Posix有名信号灯的一个小程序。用它来限制访问共享代码的进程数目。#include #include #include #include void print(pid_t);sem_t *sem; /*定义Posix有名信号灯*/int val; /*定义信号灯当前值*/ int mai转载 2012-05-22 10:52:38 · 884 阅读 · 0 评论 -
Posix多线程编程学习笔记(三)—信号灯(1)
Posix有名信号灯 函数sem_open创建一个新的有名信号灯或打开一个已存在的有名信号灯。有名信号灯总是既可用于线程间的同步,又可以用于进程间的同步。 1.posix有名信号灯函数1.名称::sem_open功能:创建并初始化有名信号灯头文件:#include转载 2012-05-22 10:35:13 · 356 阅读 · 0 评论 -
Posix多线程编程学习笔记(二)—线程属性(3)
六、线程的作用域 函数pthread_attr_setscope和pthread_attr_getscope分别用来设置和得到线程的作用域,这两个函数的定义如下: 7.名称::pthread_attr_setscopepthread_attr_getscope功能:获得/设置线程的作用域转载 2012-05-22 10:33:36 · 348 阅读 · 0 评论 -
Posix多线程编程学习笔记(二)—线程属性(1)
一.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 1.名称::pthread_attr_init/pthread_attr_destroy转载 2012-05-22 10:24:42 · 334 阅读 · 0 评论 -
Posix多线程编程学习笔记(一)—线程基础(2)
6.名称::pthread_detach功能:使线程进入分离状态。头文件:#include 函数原形:int pthread_detach(pthread_t tid);参数: 返回值:若成功则返回0,否则返转载 2012-05-22 10:20:47 · 299 阅读 · 0 评论 -
Posix多线程编程学习笔记(四)—互斥量(1)
一、什么是互斥锁 另一种在多线程程序中同步访问手段是使用互斥量。程序员给某个对象加上一把“锁”,每次只允许一个线程去访问它。如果想对代码关键部分的访问进行控制,你必须在进入这段代码之前锁定一把互斥量,在完成操作之后再打开它。 互斥量函数有 pthread_mutex_init初始化一个互斥量 pthread_mutex_lo转载 2012-05-22 10:56:11 · 375 阅读 · 0 评论 -
Posix多线程编程学习笔记(二)—线程属性(2)
四、线程的调度策略 函数pthread_attr_setschedpolicy和pthread_attr_getschedpolicy分别用来设置和得到线程的调度策略。 4.名称::pthread_attr_getschedpolicypthread_attr_setschedpolicy功能:获得/设转载 2012-05-22 10:27:14 · 733 阅读 · 1 评论 -
Posix多线程编程学习笔记(六)—共享内存(1)
一、什么是共享内存区共享内存区是最快的可用IPC形式。它允许多个不相关的进程去访问同一部分逻辑内存。如果需要在两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。这样就可以减少系统调用时间,提高程序效率。共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进程可转载 2012-05-22 11:31:03 · 497 阅读 · 0 评论 -
Posix多线程编程学习笔记(四)—互斥量(2)
四、互斥锁属性 线程和线程的同步对象(互斥量,读写锁,条件变量)都具有属性。在修改属性前都需要对该结构进行初始化。使用后要把该结构回收。我们用pthread_ mutexattr_init函数对pthread_mutexattr结构进行初始化,用pthread_mutexattr_destroy函数对该结构进行回收。 4名称::pthread转载 2012-05-22 10:56:45 · 376 阅读 · 0 评论 -
Posix多线程编程学习笔记(一)—线程基础(1)
一.什么是线程 在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。 典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。 二.线程的优点(1) 通过为每种事件类型的处转载 2012-05-22 10:14:12 · 386 阅读 · 0 评论 -
线程同步(互斥锁与信号量的作用与区别)
“信号量用在多线程多任务同步的,一个线程完成了某一个动作就通过信号量告诉别的线程,别的线程再进行某些动作(大家都在semtake的时候,就阻塞在 哪里)。而互斥锁是用在多线程多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的时候锁和信号量会同时使用的”也就是说,信转载 2012-05-22 11:41:49 · 654 阅读 · 0 评论 -
Posix多线程编程学习笔记(六)—共享内存(3)
五、共享内存区的写入和读出 上面我们介绍了mmap函数,下面我们就可以通过这些函数,把进程映射到共享内存区。然后我们就可以通过共享内存区进行进程间通信了。 下面是共享内存区写入的例子:/*shm_write.h写入/读出共享内存区*/#include #include #include #include int ma转载 2012-05-22 11:40:22 · 411 阅读 · 0 评论 -
Posix多线程编程学习笔记(五)—条件变量(2)
下面的程序是经典的生产者/消费者的例证。#include #include #include #define MAX 5 pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; /*初始化互斥锁*/pthread_cond_t=PTHREAD_CODE_INITIALIZER; /*初始化条件变量*/ t转载 2012-05-22 11:27:11 · 469 阅读 · 1 评论 -
Posix多线程编程学习笔记(三)—信号灯(2)
5.名称::sem_wait/sem_trywait功能:等待共享资源头文件:#include 函数原形:int sem_wait(sem_t *sem);int sem_trywait(sem_t *sem);参数:sem 指向信转载 2012-05-22 10:39:46 · 335 阅读 · 0 评论 -
多线程传递参数
涉及多参数传递给线程的,都需要使用结构体将参数封装后,将结构体指针传给线程定义一个结构体struct mypara{ var para1;//参数1 var para2;//参数2}将这个结构体指针,作为void *形参的实际参数传递struct mypara pstru;pthread_create(&ntid, NULL, thr_fn,& (pstr转载 2013-03-19 11:16:29 · 616 阅读 · 0 评论