作者:qianweirui7058 | 来源:互联网 | 2023-05-16 09:24
一需要了解的概念进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,
一 需要了解的概念
进程:
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
简单说,进程就是一个执行中的程序
线程:
线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。在单个程序中同时运行多个线程完成不同的工作,称为多线程
注:每一个程序都至少有一个线程,如果只有一个线程,那就是程序本身
二 概念之间的区别:
示例:
单进程单线程: 一个人在一张桌子上吃饭
单进程多线程: 多个人在一张桌子上吃饭
多进程单线程: 多个人吃饭,每个人在自己的桌子上吃饭
三 PHP编程并发实践
1. PHP的swoole扩展
关于异步的操作可以利用swoole
php的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了php语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端/客户端。
除了异步IO的支持之外,Swoole为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作
2.消息队列
常见消息队列产品:
Kafka,ActiveMQ,ZeroMQ,RabbitMQ,Redis
3.接口并发请求
curl_multi_init