1.同步与异步
对于程序的执行流程来说,一般是从上而下的方式来执行, 除非遇到流程控制语句会有一些变化, 但是原则上都会遵循这个原则; 对于PHP来说在单线程的模式下那么一个进程在执行PHP代码的时候就会从第一行执行到最后一行,那么这个过程我们就可以认为这是同步的,如果中间遇到了sleep()就不得不等待一下执行; 这种模式基本上可以满足于很多的应用场景;但是并不是绝对的比如:像微信 在网站上登入的时候就会发一条信息在自己的微信账号上提醒你登入了 , 再比如一份订单生成了之后对于用户来说并不会立即收到货,而这个发货的过程我们就可以做成异步的任务由
库存模块处理 等等操作
2. 阻塞与非阻塞
阻塞:意思就是在哪里等待,要等别人执行完成才能往下去执行;
非阻塞:就是程序可以不用等待执行的结果, 就可以进行下一步的操作;
那么在这个过程中对于对于order.php来说, 在我们向控制台输入了一个任务之后程序就在等待任务下一个信息的输入,那么这个过程我们就可以认为它是同步阻塞的; 但是对inventory.php来说,他并不需要等待order.php是否执行完才执行对于它来说执行需要去看task.txt是否存在需要完成的任务,那么这个时候它相对于 order.php是一个异步非阻塞的;对于阻塞与非阻塞的专有称呼有,同步阻塞,同步非阻塞,异步阻塞,异步非阻塞;而实际上我们并不需要关注同步非阻塞与异步阻塞,同步非阻塞在实现的过程中会存在一些复杂度可以采用异步非阻塞的方式巧妙地解决好;而异步阻塞其实本身意义就并不大