怎样理解阻塞非阻塞与同步异步的区别?
首先理解同步与异步
1,计算机之中的同步是现实生活之中的异步,异步是现实生活之中的同步
2,同步与异步关注的是消息通信机制,对于同步而言,就想浏览器请求服务器的过程,是一直等待服务器返回数据。
异步指的是,当向浏览器发送请求,如果服务器忙,会等到空闲时候告诉你(这个过程就称之为使用回调函数)
阻塞与非阻塞
1,阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态,强调的是状态!
2,阻塞是指,浏览器发送请求到服务器,一直等待服务器返回消息的状态
3,非阻塞指的是 询问之后,如果服务器没有反应,那么就会一段时间之后再次询问!
并行与并发:
1,并发的关键是你有处理多个任务的能力,不一定要同时。
并行的关键是你有同时处理多个任务的能力。
2,无论你的机器有多少个CPU, 同一时间只有一个Python解析器执行。这也和大部分解释型语言一致, 都不支持并行。这应该是python设计的先天缺陷
3,并行指的是多线程,就是把正在执行的大量任务分割成小块,分配给多个同时运行的线程。
4,多线程只是并发的一种形式,但不是唯一形式。也可以指多进程的并发!