我使用lua作爲腳本語言來處理我的應用程序中的事件,並且我不想限制用戶編寫短處理程序 - 例如,有人可能想讓一個處理程序運行一個無限循環,而另一個處理程序會中斷第一個處理程序。顯然,lua並不直接支持這種行爲,所以我正在尋找解決方法。Lua中的搶先式多線程
首先,我想避免修改引擎。是否可以設置一個調試鉤子,一旦狀態達到配額就會產生?從文檔來看,它應該不難,但我不知道是否有任何警告。
第二,我可以使用lua_close
來終止一個線程,就像我在實際的多線程中那樣嗎?
我使用lua作爲腳本語言來處理我的應用程序中的事件,並且我不想限制用戶編寫短處理程序 - 例如,有人可能想讓一個處理程序運行一個無限循環,而另一個處理程序會中斷第一個處理程序。顯然,lua並不直接支持這種行爲,所以我正在尋找解決方法。Lua中的搶先式多線程
首先,我想避免修改引擎。是否可以設置一個調試鉤子,一旦狀態達到配額就會產生?從文檔來看,它應該不難,但我不知道是否有任何警告。
第二,我可以使用lua_close
來終止一個線程,就像我在實際的多線程中那樣嗎?
這是什麼平臺上運行?我建議使用已經內置到您的環境中的線程機制。 –
我很確定試圖從兩個不同的線程操作相同的lua_State會導致不好的事情發生。 – riv
哦,我明白你的意思了。我想有多個lua_States,但讓他們「包裝」一組基礎對象(C結構或C++對象與LuaBind或其他)。根據您的要求以及您希望如何處理鎖定問題,這可能有效。但這很棘手(即你可以自己處理所有的同步問題)。 –