单线程与非阻塞如何处理?

问题描述 投票:0回答:1

如果一个单线程调用一个非阻塞函数,非阻塞函数是如何处理的?创建一个新的线程,然后在该线程中执行返回的(但不是结束的)非阻塞函数?我指的是一般非阻塞函数的情况,而不是具体的IO。

还有请告诉我多线程带阻塞调用和单线程带非阻塞调用的利弊。

multithreading asynchronous nonblocking
1个回答
0
投票

一般有两种工作方式。

  1. 函数尽可能地向前推进,然后返回一个指示,表明它不能再向前推进而不阻塞。在这种模式下,应用程序必须在后面做一些别的事情来继续操作。

  2. 函数以某种方式安排后面要做的工作。这可能意味着在应用程序中创建一个新的线程。这可能意味着安排操作系统稍后做其他事情。在这种情况下,应用程序可能有一种方法来检查操作的状态,或者操作的代码可能有某种方法在其取得进展时通知应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.