php 同步编程和异步编程的区别

  • admin
  • PHP笔记
  • 2018-04-18 21:55
  • 1558已阅读
简介 简单的介绍了 php 同步编程和异步编程的区别

注意事项

不要在代码中执行sleep以及其他睡眠函数,这样会导致整个进程阻塞


exit/die是危险的,会导致Worker进程退出


可通过register_shutdown_function来捕获致命错误,在进程异常退出时做一些清理工作

PHP代码中如果有异常抛出,必须在回调函数中进行try/catch捕获异常,否则会导致工作进程退出


不支持set_exception_handler,必须使用try/catch方式处理异常


异步编程

异步程序要求代码中不得包含任何同步阻塞操作


异步与同步代码不能混用,一旦应用程序使用了任何同步阻塞的代码,程序即退化为同步模式


类/函数重复定义

新手非常容易犯这个错误,由于Swoole/workerman是常驻内存的,所以加载类/函数定义的文件后不会释放。因此引入类/函数的php文件时必须要使用include_once或require_once,否会发生cannot redeclare function/class 的致命错误。


内存管理

PHP守护进程与普通Web程序的变量生命周期、内存管理方式完全不同。


进程隔离也是很多新手经常遇到的问题。修改了全局变量的值,为什么不生效,原因就是全局变量在不同的进程,内存空间是隔离的,所以无效


上一篇:php 多线程

下一篇:mysql单表优化

文章评论