信号机制

也叫软中断,软件层次上对中断的模拟

kill -9 加进程号可以终止进程

linux下执行kill -l可以看到

这里面居然没有32 33 直接从31到34

所以一共是62个信号

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX

信号17:子进程退出发送给父进程的信号

信号18:让暂停的进程继续运行

信号19:暂停进程,信号不能被忽略,捕捉,屏蔽

同样不能被忽略,捕捉,屏蔽的信号还有9号信号

只能执行默认动作

所谓捕捉,就是捕捉处理,在该信号发生时执行一些特定动作,比如自己定义的函数

管道

匿名管道

用于有父子关系,家族关系的,fork出来的进程之间的通信

管道需要创建于fork函数执行之前

这样才能复制内核中的打开文件表,具有相同的管道

因为管道本质是文件,匿名管道没有文件实体,只是存在于内核区的内存中而已

有名管道

无关系的进程,非fork出的进程之间的通信

eventfd,linux新特性

待补全

信号量

内存映射

将文件的一部分映射到某个进程的地址空间

其他打开该文件的进程就可以获取其中变化修改的内容

这不就是多个进程打开同一个文件?

共享内存



在虚拟地址空间的用户区中,设置一块可以多个进程共享的内存,共享内存开辟在堆区和栈区之间

相比其他如信号,管道等方式,这种方式在通信的时候,由于该共享内存不在内核区,无需内核的介入,所以效率会更高

但,多进程访问又会是新的问题,需要并发控制,加锁



linux 下用ipcs命令查询共享内存的信息

ipcs -a 可以查询共享内存,消息队列,信号量数组

0664是设置权限,创建共享内存,如果只是获取一块已经创建好的,则不需要



shmctl删除是删除不与任何进程关联的内存,如果还有进程尚未与该内存分离,尚在使用,则删除不了,只做个标记,等所有进程都不使用该内存,就会删除

shmctl标记删除,可以多个进程调用

这段只是记录下用法,如果直接用这段代码,刚创建的共享内存就会马上释放,因为没有别的进程在使用

消息队列

rabbitmq?这样和网络通信有什么区别?

socket套接字网络通信

最新文章

  1. JavaScript数组属性与方法
  2. JMeter入门
  3. python:UnicodeEncodeError
  4. POJ 1269 (直线相交) Intersecting Lines
  5. 《C和指针》章节后编程练习解答参考——6.3
  6. js 返回前一页并刷新页面方法
  7. python-整理-logging日志
  8. jQuery 图表
  9. C++学习笔记1(扩充:C++中的格式控制)
  10. How to change your password of your mysql account in WampServer
  11. 使用fastdfs-zyc监控FastDFS文件系统
  12. 搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程----转载
  13. 《SpringMVC从入门到放肆》一、概述
  14. 判断标签是否包含class的方法
  15. 加密原理介绍,代码实现DES、AES、RSA、Base64、MD5
  16. js如何使用正则表达式实现过滤HTML标签?(/<[^<>]+>/g)
  17. fusioncharts的3D饼图固定大小和角度
  18. 去掉Tomcat的管理页面
  19. [Beta]M2事后分析
  20. Json 转 dynamic

热门文章

  1. vmware网络连接
  2. C#整合ActiveMQ与SpringBoot整合ActiveMQ数据间交互
  3. 2022-05-19内部群每日三题-清辉PMP
  4. Traefik官方文档以及翻译文档
  5. linux下yum安装时出现Loaded plugins: fastestmirror
  6. springboot ElasticsearchRepository date_histogram 聚合查询
  7. Docker 安装开发运行环境
  8. 【电路理论】Flyback dc-dc convertor 反激式dc-dc变换器
  9. jenkins构建触发器定时任务Build periodically和Poll SCM 后续研究
  10. idea远程连接云服务器,并将本地代码部署在云端进行运算