PHP多线程读写文件操作
2015-09-25 11:36
656 查看
因为项目中需要做一个在线视频抢看的功能,多人抢看,肯定需要阻塞处理,不然数据会出错,就像电商的秒杀一样,需要多数据进行加锁控制,PHP里面对文件有一个加锁的控制,防止多线程读写文件的时候出现数据混乱,下面列举代码:
<?php $fp = fopen("lock.txt", "a+"); $start = microtime(true); if(flock($fp,LOCK_EX)) { try{ $str = @fread($fp, filesize('lock.txt')); $arr = explode('#',$str); if(count($arr) > 5){ echo '已经没有位置了'; exit; }else{ fwrite($fp, $_SERVER['REMOTE_ADDR'].'#'); } } finally{ flock($fp,LOCK_UN); fclose($fp); } } $end = microtime(true); echo "执行时间".($end-$start); $str = file_get_contents('lock.txt'); $arr = explode('#',$str); echo '<pre>'; print_r($arr);
相关文章推荐
- ThinkPHP进程计数类Process用法实例详解
- php文件下载
- php实现的Curl封装类Curl.class.php用法实例分析
- phpcms v9 代码分析笔记1
- php里input数组的应用
- php 正则中的"i,m,s,x,e"分别表示什么
- PHP常用正则表达式汇总
- php调用 .net webservice demo
- Zend API:深入 PHP 内核
- mac os 下打开FTP服务器
- ViewPager 如何得到当前的Fragment (使用FragmentPagerAdapter)
- php时间控制
- PHP简单实现断点续传下载的方法
- 运用Xdebug调试和优化PHP程序
- PHP官方Windows扩展资源索引
- PHP正则表达式 /i, /is, /s, /isU等
- php 发送 email
- php检测字符串是否含有重复或递增的字符
- PHP代码没有解释运行,代码输出到浏览器问题
- php 以图搜图