Ich möchte ein Lua-Skript in meinem C++ - Programm laden und dann dieses Skript mehrmals in separaten Threads aufrufen. Ich versuche zu vermeiden, das Skript in jedem Thread zu laden (warum durch diesen Overhead gehen).Lua-Skript einmal laden, in mehreren Zuständen in mehreren Threads ausführen
Ich bin so etwas wie dies in dem C++ Programm zu denken:
create lua state L
load script into L
und in n Fäden tun:
create local lua state Si (i = 1..n, i.e., separate state per thread)
grab "compiled" script from L and invoke in the context in Si
Gibt es einen "Standard" Ansatz, dies zu tun? Das Hauptziel besteht darin, zu vermeiden, dass jeder Thread das Skript lädt. Das Skript kann auch mehrfach im Zustand Si ausgeführt werden. Beachten Sie, dass die Scripts, die in separaten Threads ausgeführt werden, nicht zusammenarbeiten (d. H. Sie wissen nichts voneinander und wir möchten es so beibehalten).
Sprechen Sie über C++ - Threads oder Lua-Threads? Lua hat auch ein Konzept von Threads, die eigentlich keine anderen Programm-Threads bedeuten. Denken Sie auch nicht, dass Sie tun können, was Sie wollen, ohne Datenrennen oder Mutexen, die im Grunde jeden einzelnen Staat erzwingen. Sie müssen das Skript für jeden Status ausführen, und jeder Status muss ein separater Status sein. – Rochet2
Ich spreche über separate C++ - Threads. Das Hauptprogramm lädt das Skript im Zustand L. Später werden C++ - Threads erstellt, die in L erstelltes Skript anwenden wollen, aber da es sich um neue C++ - Threads handelt und mehrere Threads dasselbe Skript zur gleichen Zeit ausführen können, denke ich, dass Sie das tun möchte, dass das Skript in einem für den Thread spezifischen Zustand ausgeführt wird. Mein Pidgin Code ist C++ Code. – mkilian