2、对文件进行加锁时,设置一个超时时间。大致实现如下:
if($fp=fopen($fileName,'a')){
$startTime=microtime()
do{
$canWrite=flock($fp,LOCK_EX)
if(!$canWrite){
usleep(round(rand(0,100)*1000))
}
}while((!$canWrite)&&((microtime()-$startTime)<1000))
if($canWrite){
fwrite($fp,$dataToSave)
}
fclose($fp)
}
3、对 *** 作的文件进行随机读写,以降低并发的可能性;
4、将所有要 *** 作的进程放入一个队列中;
多线程访问统一资源异常,保证读写 *** 作单线程执行即可。多线程文件写同一个文件写不进去的原因是多线程访问统一资源异常,对读写 *** 作进行锁定处理,保证读写 *** 作单线程执行即可。
多线程,是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)