thread ..... sos

tfp 2000-08-06 10:00:00
各位
我的程序执行,至少30 个thread
windows 程序提倡最多16个

数据库连接数太多了!
怎么办?

多谢各位赐教!
tfp@21cn.com
...全文
44 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
Anrip.xServer 使用手册 功能: FTP + MYSQL + HTTP + PHP(FCGI) 作者: 若海[mail@anrip.com] & 尛岢[mod@kerring.net] & 小小宇[sos07@qq.com] 主页: http://www.anrip.com 说明: xServer是业内首家通过CMD界面管理所有服务并实现标准管理接口的集成化WEB开发环境。 支持php54/3/2版本切换或多版本同时运行,支持为独立站点配置独立php进程,保证站点安全。 支持Zend/eAccelerator/Mencached/XCache等扩展服务。 支持FileZilla提供的ftp服务。 - - - - - - - - - - - - - -组件列表- - - - - - - - - - - - - - FileZilla/0.9.41 http://filezilla-project.org/ MySQL/5.5.28 http://www.mysql.com/downloads/mysql/ Nginx/1.2.4 http://www.nginx.org/en/download.html PHP/5.4.8/5.3.18/5.2.17 http://windows.php.net/download/ Zend/5.5.0 http://www.zend.com/en/downloads/ XCache/2.0 http://xcache.lighttpd.net/pub/Releases/ eAccelerator/1.0 http://eaccelerator.net/ Memcached 1.2.6 http://memcached.org/ - - - - - - - - - - - - - -安装向导- - - - - - - - - - - - - - 1.解压到任意磁盘根目录,或其它不包含中文及特殊字符的目录 2.如需兼容IIS服务,请运行anrip\httpcfg\iis.cmd修改监听地址 3.运行xServer.bat,选择[安装服务],即可安装MYSQL+Nginx+PHP服务 Nginx默认监听地址为0.0.0.0:80 MySQL默认监听地址为0.0.0.0:3306 PHP52默认监听地址为127.0.0.1:9521 PHP53默认监听地址为127.0.0.1:9531 PHP54默认监听地址为127.0.0.1:9541 - - - - - - - - - - - - - -常见问题- - - - - - - - - - - - - - 警告: 若需修改服务器参数,请修改anrip\config目录内对应的文件; 而不是软件根目录下自动生成的config目录。 一、如何建立新站点 1.参考anrip\config\nginx\server\103.net.anrip.inc创建站点配置 2.创建对应的网站目录,例如webapp\com.example\www 3.运行xServer.bat,选择[重建配置],再选择[重启服务] 二、如何管理MySQL和Memcached 1.使用浏览器访问http://127.0.0.1/tools/adminer.php 1.使用浏览器访问http://127.0.0.1/tools/memcached 2.服务器:127.0.0.1;帐户/密码:root/admin 三、如何切换PHP版本 1.确保服务未安装,否则请[卸载服务] 2.编辑anrip\config\phpye\phpye.ini修改进程池参数 3.编辑Nginx配置41.server_location_*或站点配置,修改为对应端口 3.运行xServer.bat,选择[重建配置],再选择[重启服务] 四、如何修改WEB根目录 1.编辑anrip\config.php,修改[XS.WEB]的值 2.建立[XS.WEB]对应目录,并移动原WEB到[XS.WEB]目录 3.运行xServer.bat,选择[重建配置],再选择[重启服务] 五、如何修改MySQL数据目录 1.编辑anrip\config.php,修改[XS.SQL]的值 2.建立[XS.SQL]对应目录,并移动原MySQL数据到[XS.SQL]目录 3.运行xServer.bat,选择[重建配置],再选择[重启服务] - - - - - - - - - - - - - -更新日志- - - - - - - - - - - - - 2012年10月23日 - 新编译Nginx发名为nServer - 更新Nginx1.2.4集成nginx_concat_module模块,多文件合并功能 2012年10月22日 - 更新PHP版本为5.4.8和5.3.18 - 更新MySQL版本为5.5.28 - 加入php-xdebug支持,版本2.2.1 2012年10月15日 - 修正php5.2启动错误 2012年10月12日 - 添加php进程管理模块phpye - 修正自定义data地址nginx启动错误 2012年09月29日 - 更新Nginx版本为1.2.4 - 模块化nginx/php/mysql - 因未实现标准管理接口,ftp/mem放入extend目录作为扩展模块 2012年09月28日 - 独立MySQL管理脚本,允许外部调用方式管理 - 独立AnWeb管理脚本,允许外部调用方式管理 - 优化php文件浏览器,去掉“删除”功能 - 修正php文件浏览器的安全隐患 - 新加入Memcached及管理脚本 - nginx主机加入模拟路由支持 2012年09月20日 - FTP服务器(FileZilla)中文乱码问题 2012年09月18日 - 修正php文件浏览器的安全BUG 2012年09月17日 - 更新PHP版本为5.2.17为Thread Safe 线程安全 - PHP版本为5.2.17 加入对Zend支持 - PHP版本为5.2.17 更新eAccelerator为1.0(vSVN427) 2012年09月14日 - 更新PHP版本为5.4.7和5.3.17 2012年09月12日 - 更新PHP版本为5.4.6 - 同时支持php5.4/5.3/5.2版本 2012年09月11日 - 重建配置文件的时候,自动备份旧配置文件,防止误删 - 开启MySQL性能元数据信息库引擎(performance_schema) - 优化xServer.bat脚本性能 2012年08月30日 - 更新MySQL版本为5.5.27 - 更新FileZilla版本为0.9.41 2012年08月10日 - 修改一个Nginx启动时的系统错误 - 更新Nginx版本为1.2.3 - 更新PHP版本为5.4.5 2012年06月06日 - 几个有关HTML5的小修正,无关紧要 2012年06月01日 - 统一配置文件替换变量表,参看anrip/config.php,请注意修改站点配置 - MySQL数据、生成配置文件、模块临时文件均放入mydata目录,方便设置安全权限 2012年05月25日 - 配置文件放到到anrip/config目录 - 控制台代码模块化 2012年05月20日 - 更新PHP版本为5.4.3 - 优化配置文件编译脚本 - 更新WEB文件浏览器 2012年05月08日 - 更新PHP版本为5.4.2 - 更新PHP配置文件 - 更新xCache版本为2.0 - 更新Nginx版本为1.2.0 - 目录全部以小写命名,解决部分不标准PHP程序出现找不到目录的问题 2012年04月17日 - 优化error_page参数 2012年04月16日 - 更新MySQL版本为5.5.23 - 更新Nginx版本为1.0.15 - 优化Nginx配置文件 - 更改目录.default为a.default,解决特定情况无法读取目录的问题 2012年04月05日 - 解决MySQL远程访问慢的问题 2012年03月30日 - 更新Nginx版本为1.0.14 2012年03月20日 - 优化PHP配置 - 优化Nginx配置 2012年03月13日 - 更新xxfpm,防止部分杀软误报 - 更新php监听端口,防止和一些下载软件端口冲突 2012年03月07日 - 更新vc9运行库,实现自动安装 - 取消eAccelerator加速器 - 添加XCache加速器 2012年03月06日 - 更新Nginx版本为1.0.13 - 分离二进制文件/配置文件/数据文件 - 更名为xServer,寓意n个服务器组合 2012年03月05日 - 全新PHP-FCGI管理器 - 更新PHP版本为5.3.10 - 更新Nginx版本为1.0.12 2011年12月15日 - 优化MySQL-InnoDB配置文件 - 优化PHP-FCGI进程管理脚本 2011年12月10日 - PHP-FCGI采用每进程唯一端口的方式,解决高并发502错误频繁的问题 2011年11月30日 - 更新Nginx版本到1.0.10 2011年11月28日 - 再次细化Nginx配置文件 2011年11月9日 - 修正Nginx在Windows2003无法监听端口的问题 2011年11月5日 - 更新Nginx版本到1.0.9 - 将Nginx子进程数设置为2,单进程连接数提高到3072 - 允许设置多个错误处理页面 - 允许设置多个PHP处理配置 2011年10月8日 - 添加vc运行库检测功能,未安装时提示手动安装vc运行库 - 调整网络、运行权限顺序,防止检测因权限问题而无法完成 - 更新eAccelerator为VC9编译版,防止Win7下无法加载 2011年10月4日 - Web站点根目录移动至User/WebApp,MySQL数据目录移动至User/MySQL - config.php添加参数XS.SQL和XS.WEB,用于分别制定MySQL数据和Web站点根目录 - Nginx添加31.server_error_page配置,用于单独自定义错误提示 2011年10月3日 - 重写“检测网络、运行权限”代码 2011年9月29日 - 优化config.php脚本,支持自定义IP、临时目录、网站目录 - 修正zend路径为linux格式 2011年9月23日 - 运行前先进行网络测试,防止开机网络服务启动慢导致启动失败 - 使用最新汉化版FileZilla Server - MySQL默认使用MYISAM引擎 2011年9月19日 - 更新Nginx版本到1.0.6 - 更新PHP版本到5.3.8 - 添加PHP5.3对应的Zend扩展 - 优化Nginx配置文件 2011年5月20日 - 兼容IIS时,修改IIS监听端口为127.0.0.1:81 - 优化站点配置文件 2011年5月5日 - 更新此软件包已经有3年了,从今天开始正式写日志 - 添加管理员模式检测,方便Vista/Win7/Win2008用户使用 - 更改Nginx站点配置为: include server/*.inc
WinDbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。在DotNet方面WinDbg是调试分析SSCLI的最佳工具,同时可以和SOS扩展一起调试分析.net程序。最近一段时间项目需要学习了一下,有感于WinDbg功能的强大。学习的过程并不一帆风顺,WinDbg自带的英文文档大而泛,网上资料也比较少,而WinDbg Not an ABBA Song。现在总算是入了点门,也收集了一些很好的资料,整理成一个CHM方便大家学习,时间仓促,整理得比较粗糙,大家凑合着看。这些文章均来自网络,版权归原作者所有。 1. 默认表达式类型是MASM. 2. 你能使用.expr 改变默认类型(详见WINDOWS调试工具帮助文件)。 3. 某些命令总是使用C++的方式求值。 4. 一个特殊的表达式(或表达式的一部分)的赋值能通过前缀“@@”改成与一般表达式相反的方向。 这个摘要相当棘手,你应该参考WINDOWS调试工具帮助文件中的“Evaluating Expressions”。现在,这里有一些例子,给你一些关于赋值是如何工作的概念。 你之前已经停止在Sioctl!SioctlDeviceControl+0x103,所以使用dv 查看一个已知变量(查看dv 命令以获得更多信息): kd> dv Irp Irp = 0xff70fbc0 该响应的意思是,Irp 变量包含0xFF70FBC0。更多地,dv 解释C++语法中的参数。该响应基于变量内容,而不是地址。你可以确认它: kd> ?? Irp struct _IRP * 0xff70fbc0 ?? 总是以C++ 为基础(详见??命令)。假如使用MASM类型的赋值,尝试? (详见 ? 命令): kd> ? Irp Evaluate expression: -141181880 = f795bc48 这表示变量Irp 位于0XF795BC48。你可以通过使用dd (详见 dd 命令)显示内存数据,确认该变量真的包含数据0xFF70FBC0。 kd> dd f795bc48 l1 f795bc48 ff70fbc0 以及内存指向这里: kd> dd 0xff70fbc0 ff70fbc0 00940006 00000000 00000070 ff660c30 ff70fbd0 ff70fbd0 ff70fbd0 00000000 00000000 ff70fbe0 01010001 04000000 0006fdc0 00000000 ff70fbf0 00000000 00000000 00000000 04008f20 ff70fc00 00000000 00000000 00000000 00000000 ff70fc10 ff73f4d8 00000000 00000000 00000000 ff70fc20 ff70fc30 ffb05b90 00000000 00000000 ff70fc30 0005000e 00000064 0000003c 9c402408 查看象IRP这样的变量,正如dt 显示(详见dt 命令),Type和Size成员有一个似是而非的数据 : kd> dt Irp Local var @ 0xf795bc48 Type _IRP* 0xff70fbc0 +0x000 Type : 6 +0x002 Size : 0x94 +0x004 MdlAddress : (null) +0x008 Flags : 0x70 +0x00c AssociatedIrp : __unnamed +0x010 ThreadListEntry : _LIST_ENTRY [ 0xff70fbd0 - 0xff70fbd0 ] +0x018 IoStatus : _IO_STATUS_BLOCK +0x020 RequestorMode : 1 '' +0x021 PendingReturned : 0 '' +0x022 StackCount : 1 '' +0x023 CurrentLocation : 1 '' +0x024 Cancel : 0 '' +0x025 CancelIrql : 0 '' +0x026 ApcEnvironment : 0 '' +0x027 AllocationFlags : 0x4 '' +0x028 UserIosb : 0x0006fdc0 +0x02c UserEvent : (null) +0x030 Overlay : __unnamed +0x038 CancelRoutine : (null) +0x03c UserBuffer : 0x04008f20 +0x040 Tail : __unnamed 有时,你会希望使用C++ 赋值代替MASM表达式。“@@” 前缀会完成它。扩展命令总是使用象MASM表达式一样的参数,当你使用扩展命令!irp (详见 IRPs),你能看到@@的效果。 kd> !irp @@(Irp) Irp is active with 1 stacks 1 is current (= 0xff70fc30) No Mdl System buffer = ff660c30 Thread ff73f4d8: Irp stack trace. cmd flg cl Device File Completion-Context >[ e, 0] 5 0 82361348 ffb05b90 00000000-00000000 \Driver\SIoctl Args: 00000064 0000003c 9c402408 00000000 重复这个操作,不在上述的 Irp 变量中带@@ 前缀,!irp 将会使用变量的地址,而不是变量的值。为了使这更加具体,如果变量位于0xF795BC48,它包含的数据是0xFF70FBC0,使用!irp Irp 代替@@(Irp)将会请求WinDbg 格式化位于0xF795BC48的IRP stack。 你需要进一步了解的是:@@前缀相当通用,正如它的正式意思,使用不同于当前表达式中正在使用的赋值方法。如果大部分表达式是MASM,@@代表C++,如果它是C++,@@代表MASM。 最后一点建议:如果表达式不如你期望那样工作,考虑你是否在请求调试器理解MASM或者C++语法。 显示和设置内存,变量,寄存器等等 有一些方法可以显示和改变它们。 • 在当前例程中显示一个变量(当前的“scope”),使用dv (“Display Variables”)。例如,如果停止在Sioctl!SioctlDeviceControl+0x103: kd> dv DeviceObject = 0x82361348 Irp = 0xff70fbc0 outBufLength = 0x64 buffer = 0x00000000 "" irpSp = 0xff70fc30 data = 0xf886b0c0 "This String is from Device Driver !!!" ntStatus = 0 mdl = 0x00000000
本文首发于DF创客社区,作者:云天 原文链接:http://mc.dfrobot.com.cn/thread-296401-1-1.html 【设计背景】 当在公园、郊区等偏僻区域或黑夜无人情景,发生突发事件,手机等通讯设备被抢、丢失或未携带等,需报警求救。在这种孤立无援情况下,我们急需报警求救设施。 根据以上需求,相关部分可在以上这种环境下设置智能报警路灯。 【设计思路】 1、路灯配置智能终端(手机),利用人脸识别技术,采集人脸信息,后台记录(减少谎报),采集成功后,开启报警页面。 2、利用超声波检测到报警人,点亮路灯,并利用路灯发出求救信号,扩大求救范围。 【设计草图】 设计草图 【演示视频】 报警端演示 后台显示报警人 【材料准备】首先根据设计思路,准备好制作智能报警路灯所需的材料,清单和说明如下表和下图所示。 【电路设计】 为了方便编写程序,先设计智能报警路灯的电路连接关系,电路原理图如下图所示。 【程序设计】# 程序流程图设计 在写程序之前,先梳理一下思路,设计程序流程图,如下图所示。 ##硬件程序流程图 ##APP程序流程图 【ArduinoLeonardo硬件代码】#include #include double mind_n_bs; char mind_s_str; const byte LedArray_BBlG[] = {//"S"字模 B00111000, B01100100, B01100000, B00110000, B00011000, B00001100, B00100110, B00011100, }; const byte LedArray_pFgv[] = {//"O"字模 B00011000, B00100100, B01000010, B01000010, B01000010, B01000010, B00100100, B00011000}; const byte LedArray_42Se[] ={//“S”字模 B00111000, B01100100, B01100000, B00110000, B00011000, B00001100, B00100110, B00011100, }; const byte LedArray_PPNP[] = {B01100110,B11111111,B10011001,B10000001,B11000011,B01100110,B00111100,B00011000};//“心型”图案 DFRobot_LedControl max7219(5, 3, 4);//LED点阵(MAX7219),初始化DIN引脚为5,CS管脚为4,CLK管脚为3 DFRobot_Ultrasonic ultraA0;//模拟超声波 void SOS(); void XianShi(); void SOS()//12引脚上接电磁继电器,控制灯的开关,发出“SOS”莫尔代码 { digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); delay(100); digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); delay(100); digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); delay(100); digitalWrite(12, HIGH); delay(1500); digitalWrite(12, LOW); delay(100); digitalWrite(12, HIGH); delay(1500); digitalWrite(12, LOW); delay(100); digitalWrite(12, HIGH); delay(1500); digitalWrite(12, LOW); delay(100); digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); delay(100); digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); delay(100); digitalWrite(12, HIGH); delay(500); digitalWrite(12, LOW); delay(100); } void XianShi()//LED点阵显示内容 { max7219.show(LedArray_BBlG); delay(200)

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧