Re: библиотека lua_share (обмен данными между скриптами lua)
Но синхронизовать их все равно нужно по взрослому.
все, о чем вы говорите, уже реализовано в библиотеке lua_share. lua_share как раз организует вам общую память и гарантирует целостность данных при работе с ней, для этого используются мьютексы и эвенты. интерфейс к этой общей памяти - lua-объекты, это сделано для удобства. вы просто используете некую таблицу, а она - общая для параллельно работающих скриптов в одном или даже разных квиках.
если вам нужно, чтобы вся процедура обработки данных так же была защищена, вы пишите код в lua_share_boot.lua и вызываете его, либо напрямую: через rpc, либо косвенно: при доступе к данным через метаметоды.
но всегда эффективнее строить обработку так, чтобы данные не лочились вообще, или, если это невозможно, как можно реже и на как можно более короткий промежуток времени. это вопрос проектирования вашего робота. если вы обложите объектами синхронизации весь свой код, то, в пределе, вы не получите никакого ускорения от многопоточности, наоборот, вы потеряете в производительности.