2018-04-11 Multiple Process

F多进程间通讯 共享内存

Linux下进程间通信--共享内存:最快的进程间通信方式
https://www.cnblogs.com/melons/p/5791787.html

http://www.cnblogs.com/xuhj001/p/3372888.html
低级通信主要用于进程之间的同步、互斥、终止、挂起等等控制信息的传递。
高级通信主要用于进程间数据块的交换和共享 常见的高级通信有管道(PIPE)、消息队列(MESSAGE)、共享内存(SHARED MEM0RY)等。

linux中进程共享内存的2种方法

https://blog.csdn.net/shenyuflying/article/details/53244917
shmat / mmap

mmap详解

https://blog.csdn.net/l534145398/article/details/53283808

memcpy/strcpy
https://blog.csdn.net/sszgg2006/article/details/7989404

mlock

$ more /proc/sys/vm/max_map_count
    65530

$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 1029535
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1029535
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

$ ulimit -S -l 32
$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 1029535
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1029535
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

管道 pipe

linux 管道读写规则
https://blog.csdn.net/nodeathphoenix/article/details/23284157

--非阻塞
int flags = fcntl(fds[0], F_GETFL);//先获取原先的flags
fcntl(fds[0],F_SETFL,flags | O_NONBLOCK);//设置fd为阻塞模式

多进程锁/多线程锁mutex

linux-使用互斥锁完成多进程同步(多进程/多线程锁)
http://deepfuture.iteye.com/blog/760860
https://blog.csdn.net/g_brightboy/article/details/6865995

Linux编程练习(一)—— 多线程+共享内存+线程信号量练习
https://www.linuxidc.com/Linux/2013-11/93009.htm
https://blog.csdn.net/lfw19891101/article/details/5994927
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容