异步执行和同步执行有什么区别?
当您同步执行某事时,您会等待它完成,然后再继续执行另一个任务。当您异步执行某事时,您可以在它完成之前继续执行另一个任务。
话虽如此,在计算机的上下文中,这转化为在另一个“线程”上执行进程或任务。线程是作为工作单元存在的一系列命令(代码块)。操作系统可以管理多个线程,并在切换到另一个线程以使其轮流做一些工作之前,为一个线程分配一块(“切片”)处理器时间。在其核心(请原谅双关语),处理器可以简单地执行命令,它没有同时做两件事的概念。操作系统通过将时间片分配给不同的线程来模拟这一点。
现在,如果您在混合中引入多个内核/处理器,那么事情实际上可以同时发生。操作系统可以将时间分配给第一个处理器上的一个线程,然后将相同的时间块分配给不同处理器上的另一个线程。所有这一切都是为了让操作系统管理您的任务的完成,同时您可以继续编写代码并做其他事情。
异步编程是一个复杂的话题,因为当你可以同时做它们时事物如何联系在一起的语义。有很多关于这个主题的文章和书籍;看一看!