簡體   English   中英

對同一個過度使用的函數的許多並發調用會導致Lua中的阻塞嗎?

[英]Can many concurrent calls to the same overused function cause blocking in Lua?

可以說您有一個復雜的Lua應用程序,並且有一些基本函數,您的代碼的不同部分會反復調用。 這是一個無狀態功能,幾乎沒有副作用,而且相當簡單。

虛擬機如何處理? 它是否使所有調用排隊,並讓它們一個接一個地運行,等待函數返回,然后再次調用? 還是為避免這種情況做些詭計? 如果函數有一些副作用,例如print()怎么辦?

Lua是單線程的,因此每個函數調用必須在調用下一個函數之前返回。 如果某個功能被阻止,則VM也將被阻止。 解決此問題的唯一方法是協程或Lua通道或C線程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM