在 eventlet 中,spawn_n()
和 spawn()
都是用於建立協程的函式,但是它們有一些區別。
spawn_n()
函式是非同步的,它會在當前協程的事件迴圈中非同步地建立一個新的協程。這意味著它會立即返回,並且不會等待新協程的執行。spawn_n()
的好處是它不會阻塞當前協程,因此可以在不影響其他協程的情況下建立新的協程。
spawn()
函式是同步的,它會立即建立一個新的協程並等待它完成。這意味著 spawn()
函式會阻塞當前協程,直到新協程執行完成。spawn()
的好處是,它會確保在新協程執行之前,當前協程已經暫停,並且在新協程執行完成之前,當前協程不會再次執行。
如果你只是想在事件迴圈中非同步地建立一個新協程,那麼可以使用 spawn_n()
函式。如果你想等待新協程完成並獲取它的返回值,則應該使用 spawn()
函式。