先日、友人と議論をしていました。純粋な Lua では、プリエンプティブなマルチタスキング システムを構築できないと言いました。次の理由により、彼はあなたができると主張しています。
C と Lua の両方に組み込みのスレッド ライブラリはありません [OP の注: まあ、Lua は技術的にはそうですが、私たちの目的には役に立ちません]。ほとんどが C(++) で記述されている Windows には、ゼロから構築されたプリエンプティブ マルチタスク機能があります。したがって、Lua でも同じことができるはずです。私が目にする大きな問題は、プリエンプティブ マルチタスキングが機能する主な方法 (私の知る限り) は、マネージャーが制御を取得し、次にどのコードを処理する必要があるかを判断するために使用する定期的な割り込みを生成することです。また、Lua にはそれができる機能はないと思います。
私の質問は、プリエンプティブなマルチタスクを可能にする純粋な Lua ライブラリを作成することは可能ですか?