gpt4 book ai didi

multithreading - Lua-如何模拟 “multithreading”?

转载 作者:行者123 更新时间:2023-12-03 13:19:10 31 4
gpt4 key购买 nike

我有2个功能:

function func1()
while true do
-- listen on connection
end
end

function func2()
while true do
-- execute other code
end
end

我想“同时”运行两个函数,同时在它们之间共享变量。我试图创建一个用这两个函数组成协程的调度程序,但我想不出一种方法来调度它们以快速交替执行它们。 (func1运行一秒钟,func2运行一秒钟,func1运行一秒钟,依此类推)

最佳答案

Lua不支持异步多线程。它仅支持协作线程。这意味着必须将两个“线程”设计为给另一个线程执行时间。这样的设计通常高度取决于您要完成的工作。

您的示例讨论了一个线程正在监听连接,而另一个线程正在做某事(无论是否使用该连接的数据;目前尚不清楚)。在这样的系统中,当连接未提供新数据时,让func1调用func2线程是一个好主意。而且func2仅在完成处理后才将控制权返回给func1

但是,对于协作多线程,还没有一种万能的解决方案。

关于multithreading - Lua-如何模拟 “multithreading”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44930268/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com