pcntl研究
虽说php用于并发计算有点山寨,但总比没有强把。(有问题请指正)
下面是pcntl多线程的例子。(只能用于cli模式,而且只能用于linux环境)
<?php
$starttime=microtime();
$m = new Memcache;
$m->addServer('127.0.0.1', 11211);
$k=1;
$m->set('foo', 1);
//$m->set('key', 0);
for ($i = 1; $i <= 100; ++$i) {
$pid = pcntl_fork();
if (!$pid) {
//
//sleep(1);
//程序处理代码,memcache并发有问题,同时解决并发问题。
//$lock = "ss" . '.lck';
//$write_length = 0;
//while(true) {
//if( file_exists($lock) ) {
//usleep(100);
//} else {
//touch($lock);
//$m->set('foo', $m->get('foo')+1);
//echo $key=$m->get('foo');
print "In child $i\n";
break;
}
}
if( file_exists($lock) ) {
unlink($lock);
}
exit($i);
}
}
while (pcntl_waitpid(0, $status) != -1) {
$status = pcntl_wexitstatus($status);
//echo $status;
echo "Child $status completed\n";
}
$endtime=microtime();
?>
最新文章
- JS产生随机数的几个用法!
- UWP 入门教程2——如何实现自适应用户界面
- MySQL高可用读写分离方案预研
- 运行 Docker 容器时的安全风险:别丢了你的套接字
- [转] git修改author
- php基础知识【函数】(2)文件file
- SVM(支持向量机)(二)—Lagrange Duality(拉格朗日对偶问题)
- c++内存流
- Servlet和Filter生命周期
- Android View的重绘过程之Draw
- vc++2010如何新建项目并在控制台打印helloworld
- mongodb初始化并使用node.js实现mongodb操作封装
- 用Android程序打开和关闭输入法
- 《Java入门第三季》第一章 异常与异常处理
- JS中call和apply区别有哪些 记录
- escape(s, t)函数的实现
- 006 Android XML 文件布局及组件属性设置技巧汇总
- ylbtech-LanguageSamples-CommandLine(命令行参数)
- Compilation error 未完待续
- 【BZOJ 4199】[Noi2015]品酒大会 后缀自动机+DP
热门文章
- C++STL快速入门学习
- 透彻分析C/C++中memset函数
- BZOJ 1468 Tree 【模板】树上点分治
- [bzoj1833][ZJOI2010][count] (数位dp)
- RequestMapping_请求方式
- 【Codeforces 1038D】Slime
- qemu-guest-agent简介
- [luoguP3052] [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper(DP)
- 转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验
- codevs4343 找回密码