
linux多线程编程
申庆胜
这个作者很懒,什么都没留下…
展开
-
线程基本编程——线程函数大全
线程基本编程原创 2009-07-16 11:35:00 · 544 阅读 · 0 评论 -
Posix多线程编程学习笔记(五)—条件变量(2)
下面的程序是经典的生产者/消费者的例证。#include #include #include #define MAX 5 pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER; /*初始化互斥锁*/pthread_cond_t=PTHREAD_CODE_INITIALIZER; /*初始化条件变量*/ t原创 2009-07-10 09:59:00 · 540 阅读 · 0 评论 -
Posix多线程编程学习笔记(五)—条件变量(1)
一、什么是条件变量 与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。 条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检原创 2009-07-10 09:59:00 · 807 阅读 · 0 评论 -
Posix多线程编程学习笔记(三)—信号灯(3)
4.posix有名信号灯应用于多进程下面就是应用Posix有名信号灯的一个小程序。用它来限制访问共享代码的进程数目。#include #include #include #include void print(pid_t);sem_t *sem; /*定义Posix有名信号灯*/int val; /*定义信号灯当前值*/int mai原创 2009-07-10 09:57:00 · 556 阅读 · 0 评论 -
Posix多线程编程学习笔记(三)—信号灯(2)
5.名称::sem_wait/sem_trywait功能:等待共享资源头文件:#include 函数原形:int sem_wait(sem_t *sem); int sem_trywait(sem_t *sem);参数:sem 指向信号原创 2009-07-10 09:56:00 · 590 阅读 · 0 评论 -
Posix多线程编程学习笔记(三)—信号灯(1)
Posix有名信号灯 函数sem_open创建一个新的有名信号灯或打开一个已存在的有名信号灯。有名信号灯总是既可用于线程间的同步,又可以用于进程间的同步。 1.posix有名信号灯函数1.名称::sem_open功能:创建并初始化有名信号灯头文件:#include原创 2009-07-10 09:55:00 · 581 阅读 · 0 评论 -
Posix多线程编程学习笔记(六)—共享内存(3)
五、共享内存区的写入和读出 上面我们介绍了mmap函数,下面我们就可以通过这些函数,把进程映射到共享内存区。然后我们就可以通过共享内存区进行进程间通信了。 下面是共享内存区写入的例子:/*shm_write.h写入/读出共享内存区*/#include #include #include #include int ma原创 2009-07-09 17:23:00 · 1340 阅读 · 1 评论 -
Posix多线程编程学习笔记(六)—共享内存(2)
三、posix共享内存函数posix共享内存区涉及两个步骤:1、指定一个名字参数调用shm_open,以创建一个新的共享内存区对象或打开一个以存在的共享内存区对象。2、调用mmap把这个共享内存区映射到调用进程的地址空间。传递给shm_open的名字参数随后由希望共享该内存区的任何其他进程使用。 5.名称::shm_open功原创 2009-07-09 17:15:00 · 592 阅读 · 0 评论 -
Posix多线程编程学习笔记(六)—共享内存(1)
一、什么是共享内存区共享内存区是最快的可用IPC形式。它允许多个不相关的进程去访问同一部分逻辑内存。如果需要在两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。这样就可以减少系统调用时间,提高程序效率。共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进程可原创 2009-07-09 17:04:00 · 600 阅读 · 0 评论 -
Posix多线程编程学习笔记(四)—互斥量(2)
四、互斥锁属性 线程和线程的同步对象(互斥量,读写锁,条件变量)都具有属性。在修改属性前都需要对该结构进行初始化。使用后要把该结构回收。我们用pthread_ mutexattr_init函数对pthread_mutexattr结构进行初始化,用pthread_mutexattr_destroy函数对该结构进行回收。 4名称::pthread原创 2009-07-09 10:19:00 · 503 阅读 · 0 评论 -
Posix多线程编程学习笔记(四)—互斥量(1)
一、什么是互斥锁 另一种在多线程程序中同步访问手段是使用互斥量。程序员给某个对象加上一把“锁”,每次只允许一个线程去访问它。如果想对代码关键部分的访问进行控制,你必须在进入这段代码之前锁定一把互斥量,在完成操作之后再打开它。 互斥量函数有 pthread_mutex_init 初始化一个互斥量 pthread_mutex_loc原创 2009-07-09 10:08:00 · 608 阅读 · 0 评论 -
Posix多线程编程学习笔记(二)—线程属性(1)
一.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 1.名称::pthread_attr_init/pthread_attr_destroy转载 2009-07-03 18:45:00 · 505 阅读 · 0 评论 -
Posix多线程编程学习笔记(二)—线程属性(3)
六、线程的作用域 函数pthread_attr_setscope和pthread_attr_getscope分别用来设置和得到线程的作用域,这两个函数的定义如下: 7.名称::pthread_attr_setscopepthread_attr_getscope功能:获得/设置线程的作用域转载 2009-07-03 18:47:00 · 572 阅读 · 0 评论 -
Posix多线程编程学习笔记(二)—线程属性(2)
四、线程的调度策略 函数pthread_attr_setschedpolicy和pthread_attr_getschedpolicy分别用来设置和得到线程的调度策略。 4.名称::pthread_attr_getschedpolicy pthread_attr_setschedpolicy功能:获得/转载 2009-07-03 18:46:00 · 609 阅读 · 0 评论 -
Posix多线程编程学习笔记(一)—线程基础(2)
6.名称::pthread_detach功能:使线程进入分离状态。头文件:#include 函数原形:int pthread_detach(pthread_t tid);参数: 返回值:若成功则返回原创 2009-07-03 18:44:00 · 727 阅读 · 0 评论 -
Posix多线程编程学习笔记(一)—线程基础(1)
一.什么是线程 在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。 典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。 二.线程的优点(1) 通过为每种事件类型的处理分配转载 2009-06-30 17:00:00 · 562 阅读 · 0 评论 -
使用读写锁
使用读写锁配置读写锁的属性之后,即可初始化读写锁。以下函数用于初始化或销毁读写锁、锁定或解除锁定读写锁或尝试锁定读写锁。下表列出了本节中讨论的用来处理读写锁的函数。表 4–9 处理读写锁的例程 操作相关函数说明初始化读写锁 pthread_rwlock_init 语法读取读写锁中的锁 pth原创 2009-07-13 11:48:00 · 1723 阅读 · 0 评论