同步与异步:
同步与异步讲的是,用户线程与内核的交互方式。在同步的情况下,用户线程将需要由内核完成的操作交付给内核线程后,需要一直等待内核线程完成,才能返回到用户线程;异步情况下,用户线程将任务交付给内核后,即可返回至自己的运行空间。
阻塞与非阻塞:
阻塞与非阻塞讲的是用户线程与内核IO操作的交互方式。阻塞模式下,当内核执行IO操作时,用户线程将一直处于阻塞状态,无法执行其它代码,无法回到用户空间;非阻塞模式下,当IO操作交付至内核空间后,整个工作流程可以直接返回至用户空间,进行下一步操作。