线程:同步与阻塞



在网络编程中,常见到:同步(Sync) 异步(Async) 阻塞(Block), 非阻塞(Unblock) 四种调用方式。


—————————————————————————————————————————————————


同步/异步主要针对C端:


同步:

      所谓同步,就是在c端发起一个同能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。


      例如普通B/S模式(同步):提交请求 -> 等待服务器处理 -> 处理完毕返回  这个期间客户浏览器不能干任何事


异步:

      异步的概念与同步相对。当C端一个异步请求调用发出后,调用者不能立刻返回结果。实际上这个调用的部件是在完成后,通过状态,通知和回调来通知调用者。


      例如 ajax 请求:通过事件触发 -> 服务器处理(这时浏览器仍然可以做其他的事情)-> 处理完毕


——————————————————————————————————————————————————


阻塞/非阻塞主要针对S端:


阻塞:

       阻塞调用是指调用结果返回之前,当前线程会被挂起(线程进入非可执行状态,在这个状态下,cpu不会给线程分配时间片,即线程暂停运行)。函数只有在得到结果后才能返回。


非阻塞:

       非阻塞于阻塞概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。




同步IO与异步IO的区别在于:数据访问的时候进程是否阻塞。


阻塞IO与非阻塞IO的区别在于:应用程序的调用是否立刻返回。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值