当前位置: 首页 > news >正文

wordpress浏览数插件/英文网站seo发展前景

wordpress浏览数插件,英文网站seo发展前景,淘宝如何做推广,wordpress主題改豎文消息队列(也叫做报文队列)是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息…

消息队列(也叫做报文队列)是一个消息的链表。可以把消息看作一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读走消息。
IPC消息队列资源的限制
IPC消息队列的缺省数为16
每个消息的缺省最大值8192字节
队列中全部信息的缺省大小为16384字节

消息队列的概念和原理

消息队列是一种进程间通信(IPC)的机制,它允许不同进程之间通过消息进行交互。消息队列由内核负责管理,可以按顺序发送消息包(消息类型和消息内容),也可以全双工工作,即同时接收和发送消息。消息队列可以不按消息的顺序接收消息,因此具有一定的灵活性。

消息队列的应用场景

1.进程间通信:消息队列可以用于实现不同进程之间的通信,例如,一个进程需要向另一个进程发送数据或者通知,可以使用消息队列来实现。

2.异步处理:当一个进程需要异步处理某些任务时,可以使用消息队列来实现。例如,一个进程需要等待某个事件发生,它可以通过消息队列发送一个消息,通知另一个进程该事件已经发生。

3.任务分发:在分布式系统中,消息队列可以用于任务分发。例如,一个进程需要将某个任务分发给其他进程,它可以通过消息队列发送任务信息,其他进程收到消息后,可以按照任务要求进行处理。

4.日志记录:消息队列可以用于记录系统日志,当一个进程需要记录日志时,它可以将日志信息发送到消息队列,另一个进程可以实时接收并保存这些日志信息。

消息队列的优缺点

1.优点: 

   - 消息队列允许不同进程之间进行异步通信,提高了系统的并发性能。 

   - 消息队列具有一定的可靠性,即使接收进程没有及时处理消息,消息队列仍然可以保存消息。 

   - 消息队列可以实现进程间的解耦,降低了进程之间的依赖关系。

2.缺点: 

   - 消息队列的通信效率较低,因为消息需要经过内核的复制和传输。 

   - 消息队列的实现较为复杂,需要涉及到进程间通信、内存管理等方面的知识。

消息队列模型

操作消息队列

1打开或创建消息队列.
2读写操作:消息读写操作非常简单,对开发人员来说,每个消息都类似如下的数据结构:

struct msgbuf{long mtype;char mtext[1];
};
mtype 成员代表消息类型,从消息队列中读取消息的一个重要依据就是消息的类型; mtext 是消息内容,当然长度不一定为 1 。对于 发送消息来说,首先预置一个 msgbuf 缓冲区并写入消息类型和内容,调用相应的发送函数即可;对读取消息来说,首先分配这样一个 msgbuf 缓冲区,然后把消息读入该缓冲区即

3获得或设置消息队列属性

消息队列 API 共有四个,使用时需要包括几个头文件:
#include <sys/ types.h >
#include <sys/ ipc.h >
#include <sys/ msg.h >

消息队列的基本操作msgget()

功能
创建 一个新消息队列或 打开 一个存在的队列
函数原型
int msgget ( key_t key , int flag );
参数说明
key :待创建 / 打开队列的键值,如果 key 值为 IPC_PRIVATE 则创建一个新的消息队列。
flag :创建 / 打开方式
IPC_CREAT :如果存在与当前 key 值相同的消息队列,则返回该消息队列 id 。如果不存在,则创建一个新的消息队列。
IPC_EXCL :如果存在与当前 key 值相同的消息队列,则返回失败。
返回值
成功返回消息队列 描述符 ,否则返回 -1

ftok函数

ftok 原型:

      key_t   ftok( char * fname,       int id )

参数:

     fname指定的文件名(该文件必须是存在而且可以访问的)id是子序号,虽然为int,但是只有8个比特被使用(0-255)

返回值:

当成功执行的时候,一个key_t值将会被返回,否则 -1 被返回。

在一般的 UNIX 实现中,是将文件的索引节点号取出,前面加上子序号得到 key_t 的返回值。如指定文件的索引节点号为 65538 ,换算成 16 进制为 0x010002 ,而你指定的 ID 值为 38 ,换算成 16 进制为 0x26 ,则最后的 key_t 返回值为 0x26010002

消息队列的基本操作msgrcv()

函数 原型
ssize_t msgrcv (int msqid , struct msgbuf * msgp , size_t size , long type , int flag );
功能
该系统调用从 msqid 代表的消息队列中读取一个消息,并把消息存储在 msgp 指向的 msgbuf 结构中。
参数说明

msqid:消息队列描述字,描述从哪个消息队列读取消息

msgp:消息存储位置

size消息内容的长度(mtext[])

type:请求读取的消息类型

根据 type 的不同分成三种情况处理
type=0 :接收该队列的第一个消息,并将它返回给调用者
type>0 :接收类型 type 的第一个消息
type<0 :接收小于等于 type 绝对值的最低类型的第一个消息

消息队列的基本操作msgrcv()工作流程

flag:规定队列无消息时内核应做的操作

IPC_NOWAIT :如果现在没有消息,调用进程立即返回,同时返回 -1
IPC_EXCEPT type>0 时使用,返回第一个类型不为 type 的消息
IPC_NOERROR :如果队列中满足条件的消息内容大于所请求的 size 字节,则把该消息截断,截断部分将丢失。如果没有设置 IPC_NOERROR ,而消息又太长,则出错返回 E2BIG ,此时消息仍留在队列中。
调用返回:

成功返回读出消息的实际字节数,否则返回-1

注意:

取消息的时候并不一定按照先进先出的次序取消息,可以按照消息的类型字段取消息。

消息队列的基本操作msgsnd()

函数原型
int msgsnd (int msqid , struct msgbuf * msgp , size_t msgsize , int flag );
功能
msqid 代表的消息队列发送一个消息,即将发送的消息存储在 msgp 指向的 msgbuf 结构中,消息的大小由 msgze 指定。
参数说明
对发送消息来说,有意义 flag 标志为 IPC_NOWAIT ,指明在消息队列没有足够空间容纳要发送的消息时, msgsnd 是否等待。
造成 msgsnd () 等待的条件:
当前消息的大小与当前消息队列中的字节数之和 超过 了消息队列的 总容量
msgsnd () 解除阻塞的条件有三个:
消息 队列中有容纳该消息的空间;
msqid 代表的消息队列被删除;
调用 msgsnd ()的进程被信号中断
调用返回:成功返回 0 ,否则返回 -1

消息队列的基本操作msgctl()

函数原型
int msgctl (int msqid , int cmd , struct msqid_ds * buf );
功能
该系统调用对由 msqid 标识的消息队列执行 cmd 操作,共有三种 cmd 操作: IPC_STAT IPC_SET IPC_RMID
IPC_STAT :该命令用来获取消息队列信息,返回的信息存贮在 buf 指向 内存
IPC_SET :该命令用来设置消息队列的属性,要设置的属性存储在 buf 指向的 msqid_ds 结构 中;可设置属性包括: msg_perm.uid msg_perm.gid msg_perm.mode 以及 msg_qbytes
IPC_RMID :删除 msqid 标识的消息队列;

        调用返回:成功返回0,否则返回-1

消息队列使用示例——发送

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <string.h>
struct msg{long msg_types;char msg_buf[512];
};
int main()
{int qid;int pid;int len;struct msg pmsg;pmsg.msg_types = getpid();sprintf(pmsg.msg_buf, "hello!this is:%d\n",getpid());len = strlen(pmsg.msg_buf);//key_t key;//key = ftok(“usr/local/test”, 30);if((qid = msgget(0x66, IPC_CREAT | 0666))<0){perror("msgget");exit(1);}if((msgsnd(qid, &pmsg, len, 0))<0){perror("msgsnd");exit(1);}printf("successfully send a message to the queue:%d\n", qid);system("ipcs  -q");return 0;
}

 消息队列使用示例——接收

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#define BUFSIZE 4096
struct msg{long msg_types;char msg_buf[511];
};
int main(int argc, char* argv[])
{int qid, len;struct msg pmsg;qid = msgget(0x66,IPC_CREAT | 0666);//key_t key;//key = ftok(“usr/local/test”, 30);len = msgrcv(qid, &pmsg, BUFSIZE, 0, 0);if(len > 0){pmsg.msg_buf[len] = '\0';printf("recving que id:%ld\n",qid);printf("message type:%d\n", pmsg.msg_types);printf("message length:%d\n",len);printf("message text:%s\n",pmsg.msg_buf);}else if(len == 0)printf("no message!");else{perror("msgrcv");exit(0);}system("ipcs -q");exit(0);
}

相关文章:

【IPC通信--消息队列】

消息队列&#xff08;也叫做报文队列&#xff09;是一个消息的链表。可以把消息看作一个记录&#xff0c;具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息&#xff1b;对消息队列有读权限的进程则可以从消息队列中读走消息…...

读写分离的手段——主从复制,解决读流量大大高于写流量的问题

应用场景 假设说有这么一种业务场景&#xff0c;读流量显著高于写流量&#xff0c;你要怎么优化呢。因为写是要加锁的&#xff0c;可能就会阻塞你读请求。而且其实读多写少的场景还很多见&#xff0c;比如电商平台&#xff0c;用户浏览n多个商品才会买一个。 大部分人的思路可…...

Day02

今日任务&#xff1a; 977 有序数组的平方209 长度最小的子数组59 螺旋矩阵Ⅱ 977 有序数组的平方 题目链接&#xff1a;https://leetcode.cn/problems/squares-of-a-sorted-array/ 双指针问题&#xff0c;以及数组本身时有序的&#xff1b; 思路&#xff1a; 左、右两个…...

编程语言的发展未来?

编程语言的未来&#xff1f; 随着科技的飞速发展&#xff0c;编程语言在计算机领域中扮演着至关重要的角色。它们是软件开发的核心&#xff0c;为程序员提供了与机器沟通的桥梁。那么&#xff0c;在技术不断进步的未来&#xff0c;编程语言的走向又将如何呢&#xff1f; 方向…...

docsify阿里云上部署

使用Markdown格式安装和部署Nginx 本文将介绍如何使用Markdown格式安装和部署Nginx。 步骤 安装Nginx&#xff1a; 打开终端&#xff0c;并根据您的操作系统执行以下命令来安装Nginx&#xff1a; 对于Ubuntu或Debian系统&#xff1a; sudo apt-get update sudo apt-get insta…...

GPT实战系列-简单聊聊LangChain搭建本地知识库准备

GPT实战系列-简单聊聊LangChain搭建本地知识库准备 LangChain 是一个开发由语言模型驱动的应用程序的框架&#xff0c;除了和应用程序通过 API 调用&#xff0c; 还会&#xff1a; 数据感知 : 将语言模型连接到其他数据源 具有代理性质 : 允许语言模型与其环境交互 LLM大模型…...

[NAND Flash 6.4] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< ​全文 6000 字 内容摘要 NAND Flash 引脚功能 读操作步骤 NAND Flash中的特殊硬件结构 NAND Flash 读写时的数据流向 Read 操作时序 读时序操作过…...

opencv多张图片实现全景拼接

最近camera项目需要用到全景拼接&#xff0c;故此查阅大量资料&#xff0c;终于将此功能应用在实际项目上&#xff0c;下面总结一下此过程中遇到的一些问题及解决方式&#xff0c;同时也会将源码附在结尾处&#xff0c;供大家参考&#xff0c;本文采用的opencv版本为3.4.12。 首…...

深入理解UML中的继承关系

深入理解UML中的继承关系 在面向对象的设计中&#xff0c;继承关系是构建清晰、可维护系统的关键。统一建模语言&#xff08;UML&#xff09;提供了一种标准化的方法来可视化这些关系。本文将深入探讨UML中的继承关系&#xff0c;并探讨它如何在代码中体现。 什么是继承关系&a…...

CMU15-445-Spring-2023-Project #2 - B+Tree

前置知识&#xff1a;参考上一篇博文 CMU15-445-Spring-2023-Project #2 - 前置知识&#xff08;lec07-010&#xff09; CHECKPOINT #1 Task #1 - BTree Pages 实现三个page class来存储B树的数据。 BTree Page internal page和leaf page继承的基类&#xff0c;只包含两个…...

matplotlib:热图、箱形图、小提琴图、堆叠面积图、雷达图、子图

简介&#xff1a;在数字化的世界里&#xff0c;从Web、HTTP到App&#xff0c;数据无处不在。但如何将这些复杂的数据转化为直观、易懂的信息&#xff1f;本文将介绍六种数据可视化方法&#xff0c;帮助你更好地理解和呈现数据。 热图 (Heatmap)&#xff1a;热图能有效展示用户…...

Django数据库选移的preserve_default=False是什么意思?

有下面的迁移命令&#xff1a; migrations.AddField(model_namemovie,namemov_group,fieldmodels.CharField(defaultdjango.utils.timezone.now, max_length30),preserve_defaultFalse,),迁移命令中的preserve_defaultFalse是什么意思呢&#xff1f; 答&#xff1a;如果模型定…...

逸学Docker【java工程师基础】2.Docker镜像容器基本操作+安装MySQL镜像运行

基础的镜像操作 在这里我们的应用程序比如redis需要构建成镜像&#xff0c;它作为一个Docker文件就可以进行构建&#xff0c;构建完以后他是在本地的&#xff0c;我们可以推送到镜像服务器&#xff0c;逆向可以拉取到上传的镜像&#xff0c;或者说我们可以保存为压缩包进行相互…...

基于Java SSM框架实现医院管理系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现医院管理系统演示 SSM框架 当今流行的“SSM组合框架”是Spring SpringMVC MyBatis的缩写&#xff0c;受到很多的追捧&#xff0c;“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架&#xff0c;通常更简单的数据源。Spring属于…...

【java八股文】之Spring系列篇

【java八股文】之JVM基础篇-CSDN博客 【java八股文】之MYSQL基础篇-CSDN博客 【java八股文】之Redis基础篇-CSDN博客 【java八股文】之Spring系列篇-CSDN博客 【java八股文】之分布式系列篇-CSDN博客 【java八股文】之多线程篇-CSDN博客 【java八股文】之JVM基础篇-CSDN博…...

关于MySQL源码的学习 这里是一些建议

学习MySQL源码需要一定的编程基础&#xff0c;特别是C语言和数据结构。以下是一些建议&#xff0c;帮助你更好地入手学习MySQL源码&#xff1a; 基础知识 熟悉C语言编程基本概念、数据结构和算法。了解Linux操作系统基本概念&#xff0c;如进程、线程、内存管理、文件系统等。…...

Mysql是怎样运行的--下

文章目录 Mysql是怎样运行的--下查询优化explainoptimizer_trace InnoDB的Buffer Pool&#xff08;缓冲池&#xff09;Buffer Pool的存储结构空闲页存储--free链表脏页&#xff08;修改后的数据&#xff09;存储--flush链表 使用Buffer PoolLRU链表的管理 事务ACID事务的状态事…...

yum来安装php727

yum 安装php727,一键安装&#xff0c;都是安装在系统的默认位置&#xff0c;方便快捷 先确定linux平台中centos的版本信息&#xff0c;一下内容针对el7 查看linux版本 &#xff1a; cat /etc/redhat-release 查看内核版本命令&#xff1a; cat /proc/version (0)如果有安装好…...

基于jackson封装的json字符串与javaBean对象转换工具

文章目录 一、概述二、编码实现1. pom文件引入组件2. 核心代码 三、功能测试1. 测试文件2. 测试代码 四&#xff0c;完整代码 一、概述 带有API接口交互的web项目开发过程中&#xff0c;json字符串与javaBean对象之间的相互转换是比较常见的需求&#xff0c;基于jackson Objec…...

js中的数据类型

JavaScript 中有以下几种常见的数据类型&#xff1a; 基本类型&#xff08;原始类型&#xff09;&#xff1a; 字符串&#xff08;String&#xff09;&#xff1a;表示文本数据。数字&#xff08;Number&#xff09;&#xff1a;表示数值数据。布尔&#xff08;Boolean&#xf…...

vue3+vant+cropper.js实现移动端图片裁剪功能

一、前言 最近做项目中遇到一个需求&#xff0c;需要对海报图片按照一定的比例进行裁剪并上传到oss。一开始这个需求思路有两个&#xff0c;使用canvas原生或者寻找现成的第三方库&#xff0c;对比了一番觉得canvas实现时间耗费较长&#xff0c;且秉承着不重复造轮子的原则&am…...

springCould中的Bus-从小白开始【11】

目录 &#x1f9c2;1.Bus是什么❤️❤️❤️ &#x1f32d;2.什么是总线❤️❤️❤️ &#x1f953;3.rabbitmq❤️❤️❤️ &#x1f95e;4.新建模块3366❤️❤️❤️ &#x1f373;5.设计思想 ❤️❤️❤️ &#x1f37f;6.添加消息总线的支持❤️❤️❤️ &#x1f9…...

xshell和xftp

1.xshell和xftp的关系 Xftp和Xshell都是Xmanager Power Suite的组件&#xff0c;它们的功能和用途有所不同。 Xshell是一个用于MS Windows平台的强大的SSH、telnet和rlogin终端仿真软件&#xff0c;它使得用户能轻松和安全地从Windows PC上访问Unix/Linux主机。 Xftp是一个用…...

python for...else用法,一个实例就能让你明白

直接上代码&#xff0c;很简单&#xff0c;不用讲解吧&#xff0c;看不懂的话&#xff0c;就需要补充下基础知识了。 def funct2():for i in range(4):try:assert i>2print("success")breakexcept Exception as e:print(error)continueelse:print(循环不合预期)d…...

windows 设置ip命令bat脚本

您可以使用以下命令创建一个批处理文件&#xff08;.bat&#xff09;来添加IP地址&#xff1a; echo off set ipaddress set subnetmask set gatewaynetsh interface ip set address name"以太网" sourcestatic address%ipaddress% mask%subnetmask% gateway%gatewa…...

Openharmony 对应Android内存查看

众所周知&#xff0c;内存查看是一个很重要的部分&#xff0c;大多数情况&#xff0c;我们都是使用dumpsys的方法对android的内存进行查看&#xff0c;但是对于openharmony而言好像又不太一样了。 Android内存查看 命令行&#xff1a; adb shell dumpsys meminfo <packag…...

R语言【paleobioDB】——pbdb_interval():通过ID选择,返回一个地层年代段的基本信息

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新&#xff0c;该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后&#xff0c;执行本地安装。 Usage pbdb_interval (id, ...) Arguments 参数【id】…...

spring boot mybatis plus mapper如何自动注册到spring bean容器

##Import(AutoConfiguredMapperScannerRegistrar.class) ##注册MapperScannerConfigurer ##MapperScannerConfigurer.postProcessBeanDefinitionRegistry方法扫描注册mapper ##找到mapper候选者 ##过滤mapper 类 候选者 ##BeanDefinitionHolder注册到spring 容器...

What is `@PathVariable` does?

PathVariable 是SpringMVC中的注解&#xff0c;用于将HTTP请求的URI路径变量映射到Controller方法参数上。 当URL路径中包含占位符&#xff08;由大括号 {} 包围的部分&#xff09;时&#xff0c;可以使用此注解来绑定这些动态部分到方法参数。 使用样例 获取单个路径变量 …...

如何利用小程序介绍公司品牌形象?

企业小程序的建设对于现代企业来说已经成为了一项必不可少的工作。随着移动互联网的快速发展&#xff0c;越来越多的职场人士和创业老板希望通过小程序来提升企业形象&#xff0c;增强与用户的互动&#xff0c;实现更好的商业效果。在这个过程中&#xff0c;使用第三方制作平台…...