4
當我意識到我錯過了一個重要的點:併發性時,我終於選擇了v8作爲我的應用程序的腳本引擎。此刻是V8線程安全的嗎?
我決定用v8代替lua,因爲有幾個關鍵因素,但顯然我無法用v8編寫線程安全代碼或一般多線程任務。
在官方文檔中,我發現沒有提到v8的併發功能,他們描述了GC,v8是用C++編寫的,它支持很多平臺等等,但是沒有關於對這兩個wiki進行線程化以及在C++應用程序中嵌入v8的官方文檔。
問題:我應該怎麼想v8?我必須從C++中將我的應用程序作爲一組單線程/線程安全函數公開嗎?
既'Isolate'和'Locker'聲音就像從C/C++一個互斥體,但我沒有得到一樣東西,怎麼啓動多個線程?在鏈接的答案中,有一個鏈接表示v8只能在一個線程上運行,對於v8內的任何場景都是如此? – user2485710
據我所知,是的,V8只能在一個線程上運行一次。 雖然爲了確定評論的第一部分,'Isolate'基本上是V8的一個乾淨實例。你創建一個新的'Isolate'來分隔不同腳本的執行。如果有什麼「Locker」比「Isolate」更類似於互斥體。 – rstat1