4.1进行网站建设与推广wordpress主题模板收费会员系统

web/2025/10/9 0:57:03/文章来源:
4.1进行网站建设与推广,wordpress主题模板收费会员系统,流程页面设计,陕西建设厅网站首页为什么要用数据库连接池#xff1f; 我们的网站允许用户注册#xff0c;在没有池的情况下#xff0c;假设只有一个人#xff0c;那么流程就是#xff0c;用户点击注册#xff0c;通过socket将用户的账号和密码发送到服务器#xff0c;然后就需要创建MySQL数据库连接 我们的网站允许用户注册在没有池的情况下假设只有一个人那么流程就是用户点击注册通过socket将用户的账号和密码发送到服务器然后就需要创建MySQL数据库连接然后插入数据插入完毕后销毁该连接然而当用户很多时这个设计就会花费大量的时间在数据库连接的创建和释放上。为了避免这种情况引入池的概念在程序初始化的时候集中建立多个数据库连接并集中管理供程序使用更见安全和可靠。 池是一组资源的机会这组资源在服务器启动之初就被完全创建好并初始化池是资源的容器实现对资源的复用。是一种用空间换时间的技术。当系统开始处理客户请求的时候如果需要相关资源直接从池中获取无需动态分配当服务器处理完一个客户连接口将相关资源放回池中无需执行系统调用来释放资源。 如何设计 class connection_pool { public:MYSQL *GetConnection(); //获取数据库连接bool ReleaseConnection(MYSQL *conn); //释放连接int GetFreeConn(); //获取连接void DestroyPool(); //销毁所有连接//单例模式static connection_pool *GetInstance();void init(string url, string User, string PassWord, string DataBaseName, int Port, int MaxConn, int close_log); private:connection_pool();~connection_pool();int m_MaxConn; //最大连接数int m_CurConn; //当前已使用的连接数int m_FreeConn; //当前空闲的连接数locker lock; //互斥锁listMYSQL * connList; //连接池sem reserve;public:string m_url; //主机地址string m_Port; //数据库端口号string m_User; //登陆数据库用户名string m_PassWord; //登陆数据库密码string m_DatabaseName; //使用数据库名int m_close_log; //日志开关 }; 在init函数中完成了对各个数据库连接的初始化并将连接存储到list中 void connection_pool::init(string url, string User, string PassWord, string DBName, int Port, int MaxConn, int close_log) {m_url url;m_Port Port;m_User User;m_PassWord PassWord;m_DatabaseName DBName;m_close_log close_log;for (int i 0; i MaxConn; i){MYSQL *con NULL;con mysql_init(con);if (con NULL){LOG_ERROR(MySQL Error);exit(1);}con mysql_real_connect(con, url.c_str(), User.c_str(), PassWord.c_str(), DBName.c_str(), Port, NULL, 0);if (con NULL){LOG_ERROR(MySQL Error);exit(1);}connList.push_back(con);m_FreeConn;}reserve sem(m_FreeConn);m_MaxConn m_FreeConn; } 下面是从池中获取一个连接的函数 bool connection_pool::ReleaseConnection(MYSQL *con) {if (NULL con)return false;lock.lock();connList.push_back(con);m_FreeConn;--m_CurConn;lock.unlock();reserve.post();return true; } 可以看到先调用wait函数reserve是信号量如果值1那么将值-1如果为0就会陷入阻塞。成功获得信号量后获得互斥锁然后将池中的list的头取出来更新相关的数据后释放锁。 释放连接时也是类似的上锁然后将连接添加进池中更新数据后释放锁。 而作者为了实现池的RAII设计了connectionRAII类 class connectionRAII{public:connectionRAII(MYSQL **con, connection_pool *connPool);~connectionRAII();private:MYSQL *conRAII;connection_pool *poolRAII; }; 需要说明由于数据库连接本身就是指针因此通过有参构造对传入的参数进行修改时需要用双指针。 如图所示*A的值是0x00000004;*B的值是C的实际内容那么也就是说*A之后得到0x00000008是实际资源的地址现在还要解引用一次才能得到实际值。 下面的代码是获得池中的一个连接以及将连接还回去的代码。 connectionRAII::connectionRAII(MYSQL **SQL, connection_pool *connPool){*SQL connPool-GetConnection();conRAII *SQL;poolRAII connPool; }connectionRAII::~connectionRAII(){poolRAII-ReleaseConnection(conRAII); }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网页制作与网站建设填空题开发一个游戏软件需要多少钱

首先,免责声明:如果您正在编写微服务 (每个人现在都对吗?)并希望它是惯用的 ,那么通常不会在其中使用几个不同的数据源。 图片取自Pixabay© https: //pixabay.com/illustrations/software-binary-sys…

建设网站宽度最好是多少网站开发需求分析的内容

最简单的免密登录 1.A电脑生成秘钥 ssh-keygen -t rsa 2.A电脑将秘钥传给B电脑 ssh-copy-id root192.168.1.129 #将秘钥直接传给B电脑 需要输入B电脑的密码,可以看到成功。 3.测试 同理:如果B->A也需要免密登录,统一的操作。 大功告…

网站建设初步课程介绍网站建设 电子商务网站开发

本系列是zookeeper相关的实操课程,课程测试环环相扣,请按照顺序阅读测试来学习zookeeper。阅读本文之前,请先阅读----​​​​​​zookeeper 单机伪集群搭建简单记录(实操课程系列)。 阅读本文之前,请先阅读…

如何迅速k掉网站wordpress仿微信公众号模板

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。 一、安装 1.创建一…

专业网站建设哪家更好桂林论坛网站建设

Windows命令行工具cmd缺点窗口size不能便捷缩放复制文本,不能直接用鼠标拷贝,还需要多一道菜单操作;而且,还只能块状拷贝,而不是按行字符,极其不便不支持多Tab页,多窗口管理不便cmd界面丑陋&…

网站搭建合同范本上海网站设计工具

因为SQL Server运行没有正常,检查了传入参数的值,发现问题,然后传入默认参数,解决了问题.转载于:https://www.cnblogs.com/JimmySeraph/p/11043490.html

设计头像网站免费推荐高端论坛网站建设

1傅里叶变换物理意义 图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧…

河南省和城乡建设厅网站阿里网站搭建

目录 一、MHA简述 二、MHA 的组成 三、MHA 的特点 四、MHA工作原理 五、MHA部署步骤 六、搭建 MySQL MHA MHA一主两从高可用集群示意图 实验环境 1. Master、Slave1、Slave2 节点上安装 mysql5.7 2. 关闭防火墙 3. 修改 Master、Slave1、Slave2 节点的主机名 4. 修…

佛山市研发网站建设哪家好佛山做网站永网

junit数据驱动测试在本文中,我们将看到如何使用Junit进行数据驱动的测试。 为此,我将使用一个名为EasyTest的库。 我们知道,对于TestNG,它已内置了数据提供程序。 通过简单的测试,我们可以使用Junit进行数据驱动的测试…

政务公开系统网站建设四川电子有限公司 - 手机网站

CSDN编程题-每日一练(2023-08-21) 一、题目名称:贝博士的论文审阅统计二、题目名称:生命进化书三、题目名称:寻找宝藏山一、题目名称:贝博士的论文审阅统计 时间限制:1000ms内存限制:256M 题目描述: 贝博士经常收到申请他审阅论文的信函,每封信函的信封上面只有两个申…

seo 网站结构优化企业培训网

文章目录 一、需求背景二、核心功能1、功能要求2、非工能要求 三、存储方式四、实现方式五、技术栈说明 一、需求背景 二、核心功能 1、功能要求 文件上传文件预览文件分片上传文件分片合并文件秒传文件断点续传文件下载 2、非工能要求 高扩展性:方便添加新的存…

一个网站如何做外链做网站需要注册商标吗

转自: 运维监控系统-监控项及指标的梳理_程序员杂谈-CSDN博客_运维监控指标综合监控功能工具 综合监控工具完成对被管对象的集中监控、集中维护和集中管理,被管对象包括网络设备、服务器、PC设备、数据库、中间件、存储、备份、安全设备、应用系统等。工…

自适应网站的代表郑州seo排名哪有

分布式跟踪 本模块提供了端侧业务流程调用链跟踪的打点能力,包括业务流程跟踪的启动、结束、信息埋点等能力。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import hi…

杭州设计 公司 网站自动采集的网站

针对微信转发分享链接过程中,您宝贵的域名被微信检测系统过滤拦截而无法正常浏览,例如该网页包含诱导分享内容,被多人投诉等,又例如提示该网页已停止访问等提示。怎么查询域名在微信中是否被封了呢?以上接口可检测到域名的四种异…

自己的电脑建网站软件开发模型v模型

采用技术 基于SpringBoot框架实现的web的智慧社区系统的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringMVCMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 简介 本系统实现了管理员,教师,学生三个模…

关于做书的网站seo哪家好

这是一个半技术向的博客,主题来源于我读过的某本书的片段,这是一个稍稍有些前置知识的故事,主题的大概内容就是假定世界存在某个规则序列,通过一代代的探索,可以获取到此序列的内容。本文将模拟此情形,写一…

组装电脑报价网站源码淄博网站制作建设优化

负载均衡——这是一个在网络世界中非常重要的概念。 一, 负载均衡的原理 想象一下,你在学校的食堂里,只有一个厨师在忙碌地为所有饥饿的学生准备午餐。如果每个人都排队等同一个厨师,那么等待时间会很长,而且厨师可能…

网站开发的主要技术难点和重点岳阳建网站

一. 事件监听 在大前端的开发中,必然存在各种各样和用户交互的情况:比如手指点击、手指滑动、双击、长按等等。所有内容首发于公众号:coderwhy在Flutter中,手势有两个不同的层次:第一层:原始指针事件&#…

网站首页被k咋办siren模板wordpress

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一:单调栈 试题二:滑动窗口 试题三:子矩阵 试题四:最大子序和 试题一:单调栈 【题目描述】 给定一个长度为 N 的整数数列,输出每…

成都网站优化维护wordpress 页面名称

决定给自己见一个技术博客之后,在网上搜了一下,发现了51CTO网站,进入之后发现网速够快,有尝试了博客的功能,也基本满足了我的要求,那就是它了,于是我就在51CTO安家了。写了两片共近千字的文章之…