您好,登錄后才能下訂單哦!
這篇文章主要介紹了微信小程序小游戲多線程Worker怎么配置的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇微信小程序小游戲多線程Worker怎么配置文章都會有所收獲,下面我們一起來看看吧。
多線程 Worker
對于游戲來說,每幀 16ms 是極其寶貴的,如果有一些可以異步處理的任務,可以放置于 Worker 中運行,待運行結束后,再把結果返回到主線程。Worker 運行于一個單獨的全局上下文與線程中,不能直接調用主線程的方法,Worker 也不具備渲染的能力。 Worker 與主線程之間的數據傳輸,雙方使用 postMessage 來發送數據,onMessage 來接收數據,傳輸的數據并不是直接共享,而是被復制的。
步驟
1. 配置 Worker 信息
在 game.json 中可配置 Worker 代碼放置的目錄,目錄下的代碼將被打包成一個文件:
配置示例:
{
"workers": "workers"
}
2. 添加 Worker 代碼文件
根據步驟 1 中的配置,在代碼目錄下新建以下兩個入口文件:
workers/request/index.js
workers/request/utils.js
workers/response/index.js
添加后,目錄結構如下:
├── game.js
├── game.json
├── project.config.json
└── workers
├── request
│ ├── index.js
│ └── utils.js
└── response
└── index.js
3. 編寫 Worker 代碼
在 workers/request/index.js 編寫 Worker 響應代碼
const utils = require('./utils')
worker.onMessage(function (res) {
console.log(res)
})
4. 在主線程中初始化 Worker
在主線程的代碼 game.js 中初始化 Worker
const worker = wx.createWorker('workers/request/index.js') // 文件名指定 worker 的入口文件路徑,絕對路徑
5. 主線程向 Worker 發送消息
worker.postMessage({
msg: 'hello worker'
})
worker 對象的其它接口請看 worker接口說明
Tips
Worker 最大并發數量限制為 1 個,創建下一個前請用 Worker.terminate 結束當前 Worker
Worker 內代碼只能 require 指定 Worker 路徑內的文件,無法引用其它路徑
Worker 的入口文件由 wx.createWorker 時指定,開發者可動態指定 Worker 入口文件
Worker 內不支持 wx 系列的 API
Workers 之間不支持發送消息
關于“微信小程序小游戲多線程Worker怎么配置”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“微信小程序小游戲多線程Worker怎么配置”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。