- 博客(28)
- 资源 (4)
- 收藏
- 关注
原创 php中实现多进程
使用PHP真正的多进程运行模式,适用于数据采集、邮件群发、数据源更新、tcp服务器等环节。PHP有一组进程控制函数(编译时需要 –enable-pcntl与posix扩展),使得php能在*nix系统中实现跟c一样的创建子进程、使用exec函数执行程序、处理信号等功能。 PCNTL使用ticks来作为信号处理机制(signal handle callback mechanism),可以最小程度...
2012-06-03 14:13:02
250
原创 php中模拟实现多线程
我们知道PHP本身是不支持多线程的, 但是我们的WEB服务器是支持多线程的.也就是说可以同时让多人一起访问. 这也是我在PHP中实现多线程的基础.假设我们现在运行的是a.php这个文件. 但是我在程序中又请求WEB服务器运行另一个b.php那么这两个文件将是同时执行的. (PS: 一个链接请求发送之后, WEB服务器就会执行它, 而不管客户端是否已经退出)有些时候, 我们想运行...
2012-06-03 13:54:44
255
原创 最长递增子序列
最长递增子序列问题的求解 最长递增子序列问题是一个很基本、较常见的小问题,但这个问题的求解方法却并不那么显而易见,需要较深入的思考和较好的算法素养才能得出良好的算法。由于这个问题能运用学过的基本的算法分析和设计的方法与思想,能够锻炼设计较复杂算法的思维,我对这个问题进行了较深入的分析思考,得出了几种复杂度不同算法,并给出了分析和证明。一, 最长递增子序列问题的描述设L=<...
2012-06-02 23:56:20
159
原创 数据库InnoDB和MyISAM的区别
一、InnoDB和MyISAM的区别 InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理, MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。这样就可以根据数据表不同的用处是用不同的存储类型。另外,MyISAM类型...
2012-06-01 00:05:53
131
原创 c++虚函数实现原理
虚函数的定义要遵循以下重要规则: 1.如果虚函数在基类与派生类中出现,仅仅是名字相同,而形式参数不同,或者是返回类型不同,那么即使加上了virtual关键字,也是不会进行滞后联编的。 2.只有类的成员函数才能说明为虚函数,因为虚函数仅适合用与有继承关系的类对象,所以普通函数不能说明为虚函数。 3.静态成员函数不能是虚函数,因为静态成员函数的特点是不受限制于某个对象。 4.内联(inline)函...
2012-05-21 14:11:09
113
原创 有N个大小不等的自然数(1--N),请将它们由小到大排序。
有N个大小不等的自然数(1--N),请将它们由小到大排序。 要求程序算法:时间复杂度为O(n),空间复杂度为O(1)。 int cnt = 0;//辅助变量,不是算法组成部分,只是用于计数,实际应用可以不要void sort(int arr[], int n){ int t; /**//*临时变量:空间复杂度O(1)*/ //可以证明这个算法每次交换必然将一个数字正确安排到位,而且...
2012-05-21 11:44:19
461
原创 面试题:五笔的字典序编码与解码(转)
(转自http://blog.youkuaiyun.com/jiangnanyouzi/article/details/6827534)前几天朋友跟我说了一道面试题:五笔的编码范围是a到y的25个字母,从1位到4位的编码,如果将五笔的编码按字典序排序,形成数组如下:a, aa, aaa, aaaa, aaab, aaac, ..., b, ba, baa, baaa, baab...yyyx, y...
2012-05-21 10:24:12
139
原创 在一个文件中有10G个整数,乱序排列,要求找出中位数。内存限制为2G。
解法:首先假设是32位无符号整数。1. 读一遍10G个整数,把整数映射到256M个区段中,用一个64位无符号整数给每个相应区段记数。说明:整数范围是0 - 2^32 - 1,一共有4G种取值,映射到256M个区段,则每个区段有16(4G/256M = 16)种值,每16个值算一段, 0~15是第1段,16~31是第2段,……2^32-16 ~2^32-1是第256M段。一个64位无符号整数最大值是...
2012-05-19 21:23:04
428
原创 操作系统相关面试题
1、进程和线程有什么区别? 进程间是独立,这体现在内存空间,上下文环境上,线程运行在进程空间内; 一般而言(不使用特殊技术),进程无法突破进程边界存取其他进程内的存储空间,而线程由于处于进程空间内,所以同一进程所产生的线程共享同一内存空间; 同一进程中的两段代码不能够同时执行,除非引入线程; 线程是属于进程的,当进程退出时该进程所产生的线程都会被强制退出并...
2012-05-19 17:01:38
111
原创 HTTP协议头部与Keep-Alive模式详解
1、什么是Keep-Alive模式?我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免...
2012-05-19 14:56:17
104
原创 HTTP协议详解
(转自http://blog.youkuaiyun.com/gueter/article/details/1524447)引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的...
2012-05-19 14:41:25
106
原创 TCP相关的知识
1、TCP传输的可靠性是通过以下几点来保证的 0:TCP 服务器和客户端在传输之前先建立起连接1:TCP协议把应用层传来的数据分成何时大小的分段,然后将分段发送出去,发出后启动定时器,在定时器未超时的时间内等待接受方发回的确认报文。如果收到确认报文,表明该数据成功发送到了接收方。如果定时器超时后还没收到确认报文,则重发该报文。2:接收端收到正确报文后会在合适的时候向发送端发送该报文...
2012-05-19 14:33:14
132
原创 如何根据字典找出这个单词有多少个兄弟单词
问题:给定一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的兄弟单词。现在给定一个字典,用户输入一个单词,如何根据字典找出这个单词有多少个兄弟单词? 解法一: 使用hash_map和链表。 首先定义一个key,使得兄弟单词有相同的key,不是兄弟的单词有不同的key。例如,将单词按字母从小到大重新排序后作为其key,比如bad的key为abd,good的...
2012-05-09 15:55:08
167
原创 google suggestion 实现(转)
前段时间 写了个 google suggestion之类 的东西。写之前在网上搜了一些实现的方法,大多数文章介绍了前台的实现,后台的实现 大多借助了数据库的查询 或者是 lucene的前缀搜索+单词搜索。但是这些后台的方法仅仅适合小数据量的搜索,不适合大数据量的搜索。因为 数据量大会造成响应时间相当慢的情况,作为搜索建议,是不可以忍受的。经过琢磨,研究了一下GOOGLE的表现。发现 1.如...
2012-05-09 12:38:13
290
原创 printf 与sprintf 的用法
printf 可能是许多程序员在开始学习C 语言时接触到的第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf 了解多吗?在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也...
2012-04-10 16:52:11
170
原创 真机调试时,插上手机后adb.exe停止工作
用真机调试程序的时候,eclipse的console总是出现如下的错误“Adb connection Error:远程主机强迫关闭了一个现有的连接”eclipse控制台显示“远程主机强迫关闭了一个现有的连接”错误原因分析:系统防火墙阻止了5037端口的连接,而ddms需要使用此端口与adb通信。所以解决方法如下:打开防火墙的高级设置,在入站和出站规则上新建一个允许5037端口规则。继续...
2011-11-12 21:46:35
364
原创 android模拟器被点击时总是自动输入C
android模拟器使用的时候,用鼠标和键盘点击,总是会不停地弹出输入框,并且不停地输入字母‘c’,有时候急用真是急得要死。最近终于通过搜索找到了原因,原来是词典软件的取词功能导致的,有道词典有这种情况,我用的是灵格斯,也有这种情况,把划词翻译关掉就可以了,终于解脱了。...
2011-10-28 19:12:16
217
原创 Apache绑定多域名配置多站点
Listen 80ServerName localhostServerAdmin webmaster@domain.comServerRoot "d:\Comsenz\Apache2"DocumentRoot "d:\Comsenz\wwwroot"LoadModule php5_module "d:\Comsenz\PHP5\php5apache2_2.dll"PHPIniDir "d:\Com...
2011-10-14 12:32:01
594
原创 解决cannot modify header information - headers already sent by (......)
这两天被这个报错困扰了很久,今天终于找到了解决办法,主要是把utf8-bom 转为utf8,所以一定要注意编码方式,其他的方式网上有很多,以下转载一下供参考。 错误信息经常提示:cannot modify header information - headers already sent by (......)。其实已经实现需要的效果了,就是这个错误信息看着不爽,网上找了很多办法...
2011-10-01 19:27:34
373
原创 求n个数中前m个大的数的堆排序版本
堆排序就是先求出最大的数,然后求出次大的数,然后求出第三大的数,依次类推,而这个题只要求求出前m个大的数,所以用堆排序应该是效率比较高的。 heapsort(){ build_max_heap(int n); //建立最大堆 for (i=n;i>=2;i--) { exchange(a[1]...
2011-09-29 11:38:05
448
原创 PHP实现中文字符的无乱码截断
PHP内置的substr()函数不能对中文字符进行很好的截断处理,对于一些中英文混合的字符会出现乱码的情况。下面提供两种解决函数。 1、GB2312编码方式的截断 function msubstr($str, $start, $len) { if (strlen($str)-$start < $len) return false; $...
2011-09-23 14:47:48
8389
原创 PHP遍历文件目录与清除目录中的文件
今天无聊中练习了一下PHP遍历文件目录的程序,编写了以下两个程序,不过质量不是很好,轻拍~~~ 1、清除PHP缓存文件 <?phpfunction read_dir($dir,$file){ $a =strpos($file,".php"); if($a>0) { unlink($dir . $file); echo "...
2011-09-20 18:11:47
115
原创 sql性能优化总结
最近在帮一同学做数据库优化,查了一下资料,觉得很不错。一. 目的数据库参数进行优化所获得的性能提升全部加起来只占数据库应用系统性能提升的40%左右,其余60%的系统性能提升全部来自对应用程序的优化。许多优化专家甚至认为对应用程序的优化可以得到80%的系统性能提升。因此可以肯定,通过优化应用程序来对数据库系统进行优化能获得更大的收益。对应用程序的优化通常可分为两个方面: 源代码的...
2011-09-20 18:03:57
143
原创 百度空间BLOG
百度空间BLOG,写了一些在百度空间,发现那不好,还是搬家来这里,哈哈[url]http://hi.baidu.com/2010_roy/blog[/url]
2011-09-15 16:51:04
409
原创 PHP Curl 模拟登陆
在网上看了不少有关模拟登陆的文章,结合自己的项目做了一下,感觉不太熟,就重新做了一个程序,该程序是模拟登陆学校的BBS,然后进行发帖,对于那些想上十大的帖子,可以进行刷帖。有很多地方做得不完善,大家轻拍!...
2011-09-15 16:42:57
106
转载 压缩与解压Zip(PHPZip类)
PHPZip类来源:网络visitFile()函数来源:http://topic.youkuaiyun.com/u/20071225/11/e6a8db84-df02-4622-987b-2a4ed4a5eef0.html (第14楼)注:修改为可遍历子文件夹(替换遍历方法为
2011-09-15 11:40:02
362
原创 ajax测试例子(get方式)
<br />html文件(test.html):<br /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><html><br /><head><br /><title>XMLHttpRequest</title><br /><script language="javascript"><br />var
2011-04-30 19:02:00
322
原创 有关mysql中对密码的编码
很多朋友可能都遇到过,在自己注册用户名后进入数据库查询,可以看到密码是经过加密的,如密码明文为:123456,在phpmyadmin中看到的是:e10adc3949ba59abbe56e057f20f883e,这是因为mysql采用了md5加密,当然你可以去解密,如下网站可以免费解密:http://cmd5.com/,同时你在测试时也可以用PHP代码进行测试,$pass = '123456'; $pass= md5($pass); echo $pass;?>这时你就可以看到明文加密后的密文了
2011-04-26 23:43:00
1137
简易水下无线通信系统
2009-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人