本篇文章帶大家理解一下微信小程序中的雙線程模型,聊聊什么是小程序的雙線程模型?為什么小程序不使用瀏覽器的線程模型,而使用雙線程模型,希望對大家有所幫助!

有過微信小程序開發經驗的朋友應該都知道“雙線程模型”這個概念,本文簡單梳理一下雙線程模型的一些科普知識,學識淺薄,若有錯誤歡迎指正。
我以前就職于「小程序·云開發」團隊,在對外的一些培訓和技術分享里經常被人問到這樣一個問題:“微信小程序與 Web 網站在技術層面的主要區別是什么?”,在編程語言和范式上,小程序開發與 Web 前端開發非常相似(比如都用 JavaScript 語言、與 HTML/CSS 非常相似的 WXML/WXSS 等),可它卻沒有直接用原生的前端技術。【相關學習推薦:小程序開發教程】
與 Web 網站相比,以微信為宿主的小程序更需要考慮安全、性能等因素,保障小程序不會對微信App本身產生安全隱患,同時要盡量達到接近原生應用的性能和用戶體驗。這是為什么小程序不直接用瀏覽器的線程模型,非要自己弄一套雙線程模型最主要的兩個原因。
那什么是小程序的雙線程模型呢?
理解一個新概念或技術的最好的方法就是給它一個參照物,所以要搞清楚小程序的線程模型,首先要對瀏覽器的線程模型有一定的了解。
瀏覽器是多進程的
可能每個前端工程師在剛入行的時候都不止一次地被面試官問到“怎么理解前端的單線程?”,因為前端核心技能之一的 JavaScript 語言是單線程的,充分理解并掌握JS單線程的運作方式對一個前端工程師來說是最基本的要求。但是很多初學者容易走入的一個誤區:錯誤地把 “JavaScript 單線程”理解為“瀏覽器單線程”。
事實上,瀏覽器內部架構很復雜,只不過在處理 GUI 渲染線程和 JavaScript 邏輯腳本線程上用了互斥、阻塞的管理模式,讓一些開發者產生了誤解。
以 Chrome 瀏覽器為例,點擊右上角的設置按鈕然后進入“
站長資訊網