上一页 1 2 3 4 5 6 7 ··· 10 下一页
信号量问题 程序中,有时存在一种特殊代码, 最多只允许一个进程执行该部分代码。 这部分区域,称为“临界区”然而在多进程并发执行时,当一个进程进入临界区,因某种原因被挂起时, 其他进程就有可能也进入该区域。解决办法:使用信号量什么是信号量 信号量,是一种特殊的变量。 只能对信号量执行... Read More
posted @ 2016-04-01 12:56 夜色下的港湾 Views(673) Comments(0) Diggs(0) Edit
main1/msg_rcv.c#include #include #include #include #include #include #include #define MSG_SIZE 80struct my_msg_st { long int msg_type; ... Read More
posted @ 2016-04-01 12:50 夜色下的港湾 Views(489) Comments(0) Diggs(0) Edit
消息队列什么是消息队列 消息队列,用于从一个进程向另一个进程发送数据。 但仅把数据发送到一个“队列”中,而不指定由哪个进程来接受。 消息队列,独立与发送消息的进程和接收消息的进程。 (信号、管道、命名管道都不独立与发送和接收进程)消息队列,有最大长度限制:MSGMNB 消息队列中的... Read More
posted @ 2016-04-01 12:47 夜色下的港湾 Views(1003) Comments(0) Diggs(0) Edit
main_r.c#include #include #include #include #include #include #include #include #define SHM_SIZE 100int main(void){ int shmid; char bu... Read More
posted @ 2016-04-01 12:44 夜色下的港湾 Views(274) Comments(0) Diggs(0) Edit
共享内存 1 什么是共享内存 使得两个不同的进程共享一段逻辑内存,实际上都实现为共享同一段物理内存。 原理如下图: 2 共享内存的使用 2.1共享内存的获取 原型:int shmget (key_t key, size_t size, int shmflg); 参数:... Read More
posted @ 2016-04-01 12:42 夜色下的港湾 Views(552) Comments(0) Diggs(0) Edit
main.c#include #include #include #include #include #include #include #include int main(void){ int fd = 0; fd_set read_set; struct ti... Read More
posted @ 2016-04-01 12:40 夜色下的港湾 Views(343) Comments(0) Diggs(0) Edit
多路复用select问题 当需要等待某个或多个设备(文件)可读或可写时, 如果使用循环不停地检测是否可读可写,则效率很低。解决办法: 使用select系统调用。 select的用法 man 2 selectint select(int nfds, fd... Read More
posted @ 2016-04-01 12:35 夜色下的港湾 Views(459) Comments(0) Diggs(0) Edit
main1.c#include #include #define MY_FIFO "/tmp/myfifo"int main(void){ int ret; ret = mkfifo(MY_FIFO, 0777); if (ret == -1) { ... Read More
posted @ 2016-03-31 22:36 夜色下的港湾 Views(675) Comments(0) Diggs(0) Edit
管道的缺点 管道只能在具有“亲戚”关系的进程之间通信。 即仅当管道由某个进程创建之后,在该进程的所有子孙进程之间,可通过该管道来通信。其他情况下的无此“亲戚”关系的进程不能使用管道通信。解决办法:使用命名管道什么是命名管道? 命名管道是一种特殊的文件, 命名管道以普通文件的形式(在... Read More
posted @ 2016-03-31 22:32 夜色下的港湾 Views(541) Comments(0) Diggs(0) Edit
main1.c#include #include #include int main(void) { int fd[2]; int ret; char buff1[1024]; char buff2[1024]; ret = pipe(fd); ... Read More
posted @ 2016-03-31 22:29 夜色下的港湾 Views(276) Comments(0) Diggs(0) Edit
上一页 1 2 3 4 5 6 7 ··· 10 下一页