昆明电脑培训分享PHP中的(伪)多线程与多进程

发布:2019-05-17  
  • 类 别:
  • 形 式:
    工作日班
  • 价 格:
    1
  • 区 域:
  • 联 系:
    18487352740 李老师
  • 详细信息
利用WEB服务器本身的多线程来处理,从WEB服务器多次调用我们需要实现多线程的程序。
  
  PHP中也能多线程了,那么问题也来了,那就是同步的问题。昆明电脑培训http://www.kmbdqn.com/知道 PHP本身是不支持多线程的,所以更不会有什么像Java 中synchronize的方法了。那我们该如何做呢?
  
  1.尽量不访问同一个资源。以避免冲突。但是可以同时像数据库操作。因为数据库是支持并发操作的。所以在多线程的PHP中不要向同一个文件中写入数据。如果必须要写的话,用别的方法进行同步。如调用flock对文件进行加锁等。或建立临时文件,并在另外的线程中等待这个文件的消失while(file_exits('xxx'));这样就等于这个临时文件存在时,表示其实线程正在操作。如果没有了这个文件,说明其它线程已经释放了这个。
  
  2.尽量不要从runThread在执行fputs后取这个socket中读取数据。因为要实现多线程,需要的用非阻塞模式。即在像fgets这样的函数时立即返回。。所以读写数据就会出问题。如果使用阻塞模式的话,程序就不算是多线程了。他要等上面的返回才执行下面的程序。所以如果需要交换数据最后利用外面文件或数据中完成。实在想要的话就用socket_set_nonblock($fp)来实现。
  
  说了这么多,倒底这个有没有实际的意义呢?在什么时候需要这种用这种方法呢?
  
  答案是肯定的。大家知道。在一个不断读取网络资源的应用中,网络的速度是瓶颈。如果采多这种形式就可以同时以多个线程对不同的页面进行读取。
联系我时,请说是在优谱分类网上看到的,谢谢!
发布者信息
联  系  人:李老师(商家)
注册日期:2019年04月01日
用户认证:
声明:以上内容(如有图片或视频,也包括在内)为平台注册用户上传并发布,本平台仅提供信息存储服务。任何权利(如著作权、肖像权、名誉权等)的主张者,可提供权属证明后,经本平台审核后做出处理。
关于优普 | 服务条款 | 常见问题 | 法律声明 | 联系我们
2005-2025 vip114.com 京ICP备06019010号-5