拥有linux标签的文章

Linux进程通信之Unix套接字(二)

Unix套接字通信之Udp tcp和udp的区别 Tcp是可靠、稳定的,需要经过三次握手来建立连接,收发消息经过确认、Udp是不可靠的、不需要建立连接 Tcp需要建立连接确认,速度要比Udp不需要经过连接的慢一点 Tcp因需要连接,以及收发确认,占用的系统资源可能多点 Tcp可以发送少量数据,而Udp可以发送大量数据 在外网Udp是不可靠的,但基于Unix本地域通信的Udp是可靠的 服务端代码示例```php<?php/ Created by
阅读全文

Linux进程通信之Unix套接字(一)

Linux进程通信之Unix套接字(一) 什么是套接字 所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口以上来自百度(实际则就是一种连接) 支持的协议 AF_INET(IPV4) AF_INET6(IPV6) AF_UNI
阅读全文

Linux进程通信之共享内存

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-09-10 16:34:23
  • PHP
  • php linux
Linux进程通信之共享存储 概念:共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。 PHP中的
阅读全文

Linux进程通信之信号量

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-09-09 16:12:28
  • PHP
  • php linux
Linux进程通信之信号量 概念(自行百度):信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。 PV原语:信号量有两个原子操作:P操作和V操作,具体意义也要分信号量类型的情况P() : sem减1V() : sem加1 分类(
阅读全文

Linux进程通信之消息队列

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-09-07 15:06:56
  • PHP
  • php linux
Linux进程通信之IPC消息队列首先消息队列是存放消息的队列,而队列则是一种先进先出的数据结构。 在PHP扩展中,封装了8个消息队列相关的函数,有 `ftok`、`msg_get_queue`、`msg_queue_exists`、`msg_receive`、`msg_remove_queue`、`msg_send`、`msg_set_queue`、`msg_stat_queue` 具体的相关参数以及介绍,请查看PHP手册及相关文档 不同进程间消息队列通信 写进程dem
阅读全文

Linux进程通信之管道通信2

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-09-01 15:49:39
  • PHP
  • php linux
随机进程管道通信(无血缘关系) 读进程```php<?php/ Created by PhpStorm User: 北溟有鱼QAQ Date: 20210901 Time: 15:26 Email: 1769360227@qq.com /$file = 'pipe_file';//检测是否存在管道文件if(!posix_access($file,POSIX_F_OK)){ //创建管道文件 if(pos
阅读全文

Linux进程通信之管道通信

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-07-23 17:19:00
  • PHP
  • php linux
父子进程管道通信 Linux进程通信的几种方式 管道通信 中断信号 共享内存、消息队列 Unix Socket我们PHP中所使用的workman、swoole 或者其他语言当中的进行通信也是无非以上的几种方式 阻塞代码```php$file = 'pipe_file';//检测是否存在管道文件if(!posix_access($file,POSIX_F_OK)){ //创建管道文件 if(posix_mkfifo($file
阅读全文

php如何编写守护进程

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-07-02 15:58:12
  • PHP
  • php linux
什么是守护进程?守护进程是指在后台运行的程序,用于执行一些特定的任务,比如我们常见的apache、nginx、mysql等等,就是启动了守护进程,接收客户端的连接并处理相应的请求 PHP编写守护进程的条件1. 设置umask(0)文件创建屏蔽字,也就是文件的特殊权限设置()2. 将进程设置为会话首进程,也就是开启两个进程,父进程退出,子进程设置setsid()3. 将文件的目录设置为根目录4. 关闭文件的标准输入、标准输出、标准错误,也就是当程序开启守护进程后,不在接收控制终端的
阅读全文

PHP中pcntl_sigprocmask的作用是什么

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-04-12 16:23:28
  • PHP
  • php linux
信号屏蔽字(设置阻塞信号) 什么是信号集?信号集也就是信号的集合。通俗来讲就是一堆信号,而信号屏蔽字也就是屏蔽信号的集合 用途?当你编写程序,想要屏蔽某个或多个信号的时候,那么我们就会用到PHP扩展中的pcntl_sigprocmask函数,这个函数就是用于设置信号屏蔽字的函数,第一个参数就是可以是否设置屏蔽信号字,SIG_BLOCK 是设置,SIG_UNBLOCK是移除不设置第二个参数就是你要设置屏蔽的信号集合数组,第三个参数是返回之前设置屏蔽的信号集数组 de
阅读全文

如何用PHP编写一个信号中断处理程序

  • 北溟有鱼QAQ(LuffyQAQ)
  • 2021-04-10 11:07:27
  • PHP
  • php linux
如何用PHP编写一个信号中断处理程序 什么是中断信号? 从字面意义来讲就是指可以使软件中断运行的信号。中断信号处理程序完程序后,就会返回继续执行主程序。具体概念请自行百度 有哪些中断信号? 在linux系统上 使用 ` kill l ` 命令 查看系统的中断信号,其中 31以下的则是比较常用的信号 比如:SIGKILL 杀死进程 SIGINT 中断程序(也就是终端中按ctrl+c),SIGUSR1 用户自定义信号 等等信号,具体信号可自己百度了解
阅读全文