并发,是指一个时间段内,有几个程序在同一个cpu上运行,但是任意时刻只有一个程序在cpu上运行。
并行,是指任意时刻上,有多个程序同时运行在多个cpu上。
在调用io操作时需要考虑到同步和异步:
同步,是指代码调用io操作时,必须等待io完成才返回的调用方式。
异步,是指代码调用io操作是,不必等待io完成就返回调用方式。
阻塞是调用函数时候当前线程会挂起。
非阻塞是指调用函数时候当前线程不会挂起,而是立即返回。
关于同步、异步、阻塞和非阻塞的区别在于:
同步和异步实际上是消息通讯的一种机制,可以把我们的操作当做一个消息,我们调用一个操作的时候相当于发一个消息给另外一个线程或者说是协程,我们直接拿到一个future,后期我们再通过这个future拿到结果,而不需等待操作完成。阻塞和非阻塞和一种函数调用的机制。
网友评论