libevent API
可以指定一个函数回调,当在文件描述符上产生了特定操作或者有超时动作时,这个函数回调会被调用,不仅如此,libevent还支持的事件类型包括信号量和常规超时。libevent的意图在于替代在事件驱动的网络服务中的事件循环,一个应用在使用libevent时之需要调用event_...
分类:
其他好文 时间:
2014-06-29 07:44:08
阅读次数:
257
编程之美--多线程高效下载的问题2011-03-27 15:27:12分类:C/C++基本的思路: 这个问题相当于是生产者和消费者模型的问题 首先定义两个线程,一个是下载线程,一个是存储线程,下载线程将数据从网络上下载到相应的数据的缓冲区中(BLOCK组成的队列)。存储的线程从数据缓冲区中读取相应的...
分类:
其他好文 时间:
2014-06-18 15:41:28
阅读次数:
261
1 #include "iostream" 2 #include "windows.h" 3 #include "cstring" 4 using namespace std; 5 6 HANDLE g_hSemThreads=INVALID_HANDLE_VALUE; 7 8 static ...
进程间通信 - IPC
Unix / Linux 系统基于多进程,进程和进程之间经常做数据的交互,这种技术叫进程间通信。
常见的IPC:
1)文件
2)信号
3)管道
4)共享内存
5)消息队列
6)信号量集
7)网络编程(socket)
... ...
其中,管道是最古老的IPC之一,目前较少使用。共享内存、消息队列和信号量集 遵循相同的规范,因此编码上有很多的共同点,...
分类:
其他好文 时间:
2014-06-16 19:43:14
阅读次数:
189
五、自旋锁(spinlock)
自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。
由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。
信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因...
分类:
系统相关 时间:
2014-06-15 16:34:46
阅读次数:
285
1.基本概念:sleep,join,yied,优先级.2.进程,线程:独立的内存空间,内存地址,不会相互影响。3.数据结构:(共享资源的软件模拟)-队列,4.并发控制:信号量机制(硬件机制原理),软件实现(锁机制-比如读写分离,基于二维的锁兼容性)5.障碍器,信号量,锁6.CPU密集型--计算,I/...
分类:
编程语言 时间:
2014-06-08 21:38:34
阅读次数:
498
信号量是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语。有三种类型:Posix有名信号量,使用Posix IPC名字标识;Posix基于内存的信号量,存放在共享内存区中;System V信号量,在内核中维护。这三种信号量都可用于进程间或线程间的同步。
图1 由两个进程使用的一个二值信号量
图2 由两个进程使用的一个Posix有名二值信号量
图3 由一个...
分类:
系统相关 时间:
2014-06-08 02:58:38
阅读次数:
359
笔者理解:Kithara
RTS的多任务编程主要用于内核实时程序开发中,其体系结构比较像一些嵌入式实时操作系统,如ucos,freertos等。笔者翻译了一部分内容,有一些内容看原文更好理解,因此没有翻译。
Tasks The Multitasking Module offers task exec...
分类:
其他好文 时间:
2014-06-07 09:32:36
阅读次数:
262
http://www.ibm.com/developerworks/cn/java/j-thread/信号量通常情况下,可能有多个线程需要访问数目很少的资源。假想在服务器上运行着若干个回答客户端请求的线程。这
些线程需要连接到同一数据库,但任一时刻只能获得一定数目的数据库连接。你要怎样才能够有效地将...
分类:
编程语言 时间:
2014-06-07 08:00:36
阅读次数:
259
1.
信号量机制的缺陷问题:在上面的生产者消费者实例中,信号量的工作机制如下(我们以生产者的代码为例):1 down(&empty);2
down(&mutex);3 enter_item(item);4 up(&mutex);5
up(&full);如果交换1号和2号语句,变成:1 down(&m...
分类:
其他好文 时间:
2014-06-06 22:36:54
阅读次数:
336