Heim > Backend-Entwicklung > PHP-Tutorial > PHP中关于flock的有关问题

PHP中关于flock的有关问题

WBOY
Freigeben: 2016-06-13 10:08:46
Original
856 Leute haben es durchsucht

PHP中关于flock的问题
关于flock的问题,我在博客上整体了下,http://www.shionco.com/archives/php_flock.html

例程代码:

  $fd = fopen('./a.html', 'wb'); 
  if ($fd) { 
  if (@flock($fd, LOCK_EX|LOCK_NB)) { 
  echo '未锁,打开文件并加锁';
  sleep(10); 
  } else { 
  print '已锁,关闭文件'; 
  } 
  fclose($fd); 
  } else { 
  echo '打开文件失败'; 
  } 

我在FF下,建立2个页面,打开第一个页面运行,独占锁定成功,进入延时状态,马上打开第2个页面运行,结果第2页发生阻塞,等到第1页运行结束,第2页也独占锁定成功,进入延时状态,执行完毕,明明使用了LOCK_NB,但并未发生独占锁定失败。无论是新建标签页或新窗口都会发生阻塞!

然而在IE下(我使用的是IE9,别的未测试),同样的流程,第2页直接独占锁定失败,输出"已锁,关闭文件";

如果是这样,FF的客户端大量浏览发生内容更新的缓存文件,岂不是都会阻塞?



------解决方案--------------------
你可以这样验证,再创建一个文件,包含上述代码

试着用标签式浏览器分别打开这两个文件,,,,看看是否达到你的需求。。如果是,就是上述原因

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage