虽说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();

?>

最新文章

  1. JS产生随机数的几个用法!
  2. UWP 入门教程2——如何实现自适应用户界面
  3. MySQL高可用读写分离方案预研
  4. 运行 Docker 容器时的安全风险:别丢了你的套接字
  5. [转] git修改author
  6. php基础知识【函数】(2)文件file
  7. SVM(支持向量机)(二)—Lagrange Duality(拉格朗日对偶问题)
  8. c++内存流
  9. Servlet和Filter生命周期
  10. Android View的重绘过程之Draw
  11. vc++2010如何新建项目并在控制台打印helloworld
  12. mongodb初始化并使用node.js实现mongodb操作封装
  13. 用Android程序打开和关闭输入法
  14. 《Java入门第三季》第一章 异常与异常处理
  15. JS中call和apply区别有哪些 记录
  16. escape(s, t)函数的实现
  17. 006 Android XML 文件布局及组件属性设置技巧汇总
  18. ylbtech-LanguageSamples-CommandLine(命令行参数)
  19. Compilation error 未完待续
  20. 【BZOJ 4199】[Noi2015]品酒大会 后缀自动机+DP

热门文章

  1. C++STL快速入门学习
  2. 透彻分析C/C++中memset函数
  3. BZOJ 1468 Tree 【模板】树上点分治
  4. [bzoj1833][ZJOI2010][count] (数位dp)
  5. RequestMapping_请求方式
  6. 【Codeforces 1038D】Slime
  7. qemu-guest-agent简介
  8. [luoguP3052] [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper(DP)
  9. 转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验
  10. codevs4343 找回密码