Lua の本を何冊か読んでいて、いくつかの古い (そして書き方が悪い) C コードを Lua と C の混合コードに移行することを考えています。
ただし、このレガシー コードではスレッドを使用していくつかの重要なタスク (基本的にはオーディオ/ビデオ ストリーミング) を処理する一方で、注意が必要な単純なタスク (ユーザー インターフェイス) もあります。私が読んだことによると、Lua はスレッドを直接サポートしておらず、コルーチンの使用を促進しています。
このような状況でコルーチンベースの環境に移行するのは正気でしょうか? 私の考えでは、重要度の低いコルーチンを再開しようとするたびに、優先度の高いコルーチンを常に最初に再開しようとするディスパッチャーを思い浮かべることができます。経験がないのでこちらで質問させていただきます。
編集
詳細については、ニコル・ボーラスから尋ねられました。
これはリアルタイムアプリケーションです。新しいビデオ フレームを処理する準備ができた場合など、一部のイベントを処理するために大きな遅延が発生するわけにはいきません。以前の C プログラムでは、これを行うためにスレッドとコールバックを使用していました。たとえば、新しいフレームが発生すると、コールバックが呼び出され、データが処理のために準備されます (プロデューサーとしてのコールバックとコンシュームとしてのビデオ スレッド)。
コールバックをどうするかについてはまだ考えていません (おそらく C で保持し、いくつかのミューテックスを使用して Lua コードのデータを更新します)。 、この種の問題に適しています。誰かがいくつかの例やストーリーを持っていて、それを共有したい場合.