
进程通信
文章平均质量分 81
Jayson God
人工智能,终端设备从业着
展开
-
进程通信之共享内存
1、共享内存 –共享内存是进程间通信中最简单的方式之一。共享内存在各种进程间通信方式中具有最高的效率。因为系统内核没有对访问共享内存进行同步,您必须提供自己的同步措施。解决这些问题的常用方法是通过使用信号量进行同步。2、int shmget(key_t key, size_t size, int shmflg) –shmget((key_t)1234, s原创 2017-01-06 21:55:00 · 444 阅读 · 0 评论 -
进程通信之信号量
1、信号和信号量 –信号与信号量是不同的两种事物。 –信号量是用来调协进程对共享资源的访问的。为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。临界区域是指执行数据更新的代码需要独占式地执行,而信号量就可以提供这样的一种访问机制,让一个临界区同一时间只有一个线程在访问它。2原创 2017-01-05 19:13:17 · 303 阅读 · 0 评论 -
进程通信之信号
信号1、信号用于处理异步事件,信号的通信方式理解起来还是有一定难度的,它既可以在一个进程内进行通信,发送信号给进程,又可以用于进程外通信。2、man 2 alarm3、man 2 signal4、unsigned int alarm(unsigned int seconds) –参数seconds:闹钟的时间,单位为秒 –返回值:成功返回0 或者返回原创 2017-01-04 20:57:54 · 283 阅读 · 0 评论 -
进程通信之消息队列
1、消息队列就是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级2、 对消息队列有写权限的进程可以向其中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。3、man 2 msgrcv4、函数int msgget(key_t key, int msgflg) –参数“key”:消息队列关联的标识符 key = IPC_PR原创 2017-01-03 21:40:55 · 351 阅读 · 0 评论 -
进程通信之有名管道
1、无名管道只能用于有亲缘关于的进程通信,有名管道可以实现无亲缘关系的通信2、有名管道fifo 给文件系统提供一个路径,这个路径和管道关联,只要知道这个管道路径,就可以进行文件访问,fifo 是指先进先出,也就是先写入的数据,先读出来3、有名管道的读写速度非常快4、man 3 mkfifo5、int mkfifo(const char *pathname, mode_t原创 2017-01-07 16:40:07 · 426 阅读 · 0 评论 -
进程通信之无名管道
1、无名管道有一定的局限性 –它是属于半双工的通信方式 –只有具有“亲缘关系”的的进程才能使用这种通信方式,也就是父进程和子进程之间。2、man 2 pipe3、int pipe(int pipefd[2]) –参数pipefd[0]:用于读管道 –参数pipefd[1]:用于写管道 –返回值:执行成功返回0,失败返回原创 2017-01-07 16:40:43 · 383 阅读 · 0 评论