page contents
Nen
Nen - 程序员

性别: 天津 - 天津市 注册于 2021-06-23

向TA求助
2850金币数
43180 经验值
1个粉丝
主页被访问 6233 次

3096 个回答

0 赞同

C++ 标准库智能指针uniqueptr,sharedptr,weak_ptr介绍?

uniqueptr 只允许基础指针的一个所有者。 除非你确信需要 sharedptr,否则请将该指针用作 POCO 的默认选项。 可以移到新所有者,但不会复制或共享。 替换已弃用的auto_ptr。  sharedptr 采用引用计数的智能指针。 如果你想要将一个原始指针分配给多个所有者(例如,从容器返回了指针副本又想保留原始指针时),请使用该指...

回答于 2021-10-13 15:01

0 赞同

消息队列的基本作用?

消息队列的主要作用是:解耦、异步、削峰。 解耦 A 系统通过接口调用发送数据到 B、C、D 三个系统。那如果现在 E 系统也要这个数据呢? 那如果 C 系统现在不需要了呢?现在 A 系统又要发送第二种数据了呢?这样的话 A 系统的维护成本就非常的高,而且 A 系统要时时刻刻考虑B、C、D、E 四个系统如果出现故障该怎么办?A...

回答于 2021-10-13 15:00

0 赞同

消息队列的优缺点有哪些?

优点 消息队列的优点就是:解耦、异步、削峰。 缺点 1、降低系统的可用性:系统引入的外部依赖越多,越容易挂掉; 2、 系统复杂度提高:使用 MQ 后可能需要保证消息没有被重复消费、处理消息丢失的情况、保证消息传递的顺序性等等问题; 3、一致性问题:A 系统处理完了直接返回成功了,但问题是:要是 B、C、D 三...

回答于 2021-10-13 14:57

0 赞同

如何保证消息队列的高可用?

根据不同的 MQ 或者你用过的 MQ 进行回答:  RabbitMQ:镜像集群模式  RabbitMQ 是基于主从做高可用性的,Rabbitmq有三种模式:单机模式、普通集群模式、镜像集群模式。单机模式一般在生产环境中很少用,普通集群模式只是提高了系统的吞吐量,让集群中多个节点来服务某个 Queue 的读写操作。那么真正实现 RabbitMQ 高可用...

回答于 2021-10-13 14:55

0 赞同

如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

要保证消息不被重复消费,其实就是要保证消息消费时的幂等性。幂等性:无论你重复请求多少次,得到的结果都是一样的。例如:一条数据重复出现两次,数据库里就只有一条数据,这就保证了系统的幂等性。、 那么如何保证幂等性呢? 1、写数据时,先根据主键查一下这条数据是否存在,如果已经存在则 update; 2、 数据库的...

回答于 2021-10-13 14:49

0 赞同

头文件中的 ifndef/define/endif 干什么用?预处理

防止头文件被重复引用

回答于 2021-10-12 16:55

0 赞同

说一说C与C++的内存分配方式?

1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,如全局变量,static变量。 2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。...

回答于 2021-10-12 16:55

0 赞同

用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略...

#define SECONDSPERYEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。 3). 意识到这个表达式将使一个16位机...

回答于 2021-10-12 16:55

0 赞同

strtok函数在使用上要注意什么问题?

这个问题我不知道能不能回答全面,因为实在是用的很少。这个函数的作用是分割字符串,但是要分割的字符串不能是常量,这是要注意的。比如先定义一个字符串:char array[]=”part1,part2″;,strtok的原形是char *strtok(char *string, char *delim);,我们将”,”作为分隔符,先用pt=strtok(array,”,”);,得到的结果print出来就...

回答于 2021-10-12 16:54

0 赞同

在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”声...

 函数和变量被C++编译后在符号库中的名字与C语言的不同,被extern “C”修饰的变量和函数是按照C语言方式编译和连接的。由于编译后的名字不同,C++程序不能直接调用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。

回答于 2021-10-12 16:54