Javascript多線程引擎(八)


Javascript多線程引擎(八)

      Javascript 多線程項目, 做到現在已經快3個月了(加上前期准備編譯原理和必要的文檔), 該項目(js-engine)已經快進入尾聲了, 現在該引擎的特性包括如下:

      1. 全C語言代碼(適合嵌入式)

      2. 沒有正則表達式(不能算是好的特性 , 以后有機會可以添加)

      3. 沒有Unicon支持(也不是好特性, 只是支持Ascii)

      4. 沒有lable with 語句了(相信大家在Javascript編程中用這兩個特性把)

      5. 解析器報錯(可以調試語法是否發生錯誤, 具體的參數在JsParser.h 的幾個宏)

      6. 內置了幾個基本類型[Object , Function , String , Boolean, Number, Array , Thread ,Global]

      7. 支持異常系統(該特性 可以大大的減少return 之后,對函數判斷的語句 ^_^ , 並且支持Stack 打印, 保證你能追蹤到錯誤 , 最后也用來釋放非托管資源)

      8. 支持多線程: synchronzied關鍵字,可以對Object, 或者 函數聲明前添加. 並且提供了join ,sleep,  yield 線程特性函數. 幫助你 完成線程管理

      9. 簡易的NIO API構造函數, 

            JsThread JsNIO(JsThreadFn work,void* data, struct JsObject* o, int openEngine);

       就可以開啟額外的線程, 來完成IO工作, 完成后加入到調度隊列中.

       也可以開啟另外一個引擎, 調度到新引擎的調度隊列中.

      10. 在該系列第一篇文章中,說引擎不支持垃圾回收^_^,  現在決定還是支持該特性,畢竟沒有垃圾回收的功能,這個引擎可能永遠停留在Github上了。

      11. JIT, 這個難度比較大, 在完成垃圾回收后, 盡量提供該特性.

     添加了垃圾回收模塊后, 感覺現在這個引擎和lua之類的嵌入式引擎的差距不是很大了 ^_^.

    接下來就添加幾個多線程 test case:

                Thread.join 測試用例:

      

    測試結果:

      

    Sleep.js 測試:

      

    測試結果:

      

    希望下次寫文章的時候, 已經把垃圾回收做出來了~~ 

    謝謝大家的支持.^_^

    項目地址:

      github.com/darkgem/js-engine


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM