同步&异步 //并发&并行 //阻塞&非阻塞 //多线程&多进程

朝花夕拾。。。

1.同步 & 异步

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

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

异步
当一个异步过程调用发出后,调用者不能立即得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
例如:
ajax请求(异步):请求通过事件触发->服务器处理(这个浏览器仍然可以做其他事情) ->处理完毕

2.阻塞&非阻塞
阻塞
阻塞调用是指调用结果返回之前,当前线程会被挂起,cpu不会给线程分配时间(同步状态下cpu会给线程分配时间),即线程暂停运行。函数只有在得到结果之后才会返回。

非阻塞
如果说线程是程序工作的基本单位、服务是要处理的内容,那么阻塞是指工作线程需要等待服务的响应结果才会处理下一个服务,否则工作线程会一直处于等待状态。非阻塞是指工作线程不需等待结果直接处理下一个服务。

阻塞
服务的执行不依赖Handler返回结果,工作线程直接处理下一个服务。

区别与联系
同步与异步是对应的,它们是线程之间的关系,两个线程之间要么是同步的,要么是异步的。

阻塞与非阻塞是对同一个线程来说的,在某个时刻,线程要么处于阻塞,要么处于非阻塞。

3.多线程&多进程

多进程
多进程就是一次启动多个进程,每个进程至少有一个线程,但多个进程可以一起执行多个任务。一般进程数默认是电脑CPU核数,当你的电脑是四核的时候,你的电脑进程默认就是4个。

多线程
多线程模式就是一次只启动一个进程,但是在这个进程里面可以启动多个线程,这样多个线程就可以一起执行多个任务。
python中的GIL机制使得多线程在每一个时间段内只能处理一个任务,因此效率不高,一般使用多进程。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值