匯仁智杰網絡推廣專家在以往的文章中講述了很多Web前端開發與iOS終端開發的異同,不知道大家還有沒有印象,當然今天我們也是繼續以往的話題繼續講述Web前端開發與iOS終端開發的異同,我們今天主要說的是二者之間線程的異同。
終端開發需要大量使用多線程,iOS有一條主線程,UI渲染都在這個線程,其他耗時長的邏輯或者數據庫IO/網絡請求都需要自己另開線程執行,否則會占用主線程的時間,導致界面無法響應用戶交互事件,或者渲染慢導致滾動卡頓。程序邏輯分布在多個線程里跑,需要處理好各種代碼并發執行可能帶來的數據不一致/時序錯亂之類的問題,并發也導致有些bug難以排查,一不留神就掉坑,需要適當用一些隊列/鎖保證程序的執行順序。iOS提供了一套多線程管理的方法GCD,已經把線程和隊列封裝得非常簡單易用功能強大,比其他端或后臺是好很多了,但還是會花大量功夫在處理多線程問題上。
前端開發幾乎不需要線程這個概念,瀏覽器實現上頁面HTML和CSS解析渲染可能與js不在同一個線程,但所有js代碼只執行在一條線程上,不會并發執行,也就不需要考慮各種并發編程的問題。在新的JS特性中可以創建worker任務,這樣的任務是可以另起一條線程并行執行的,但由于并不是所有瀏覽器都支持,不同線程傳遞數據各個標準定的還不一樣,使用場景也少,似乎沒有大規模用起來。對于數據庫操作/發送網絡請求這樣的任務是在不同于js代碼執行線程的,不過這些都由瀏覽器管理,前端無需關心也無法影響這些線程,只需接收事件回調,不需要處理任何并發問題。
其實二者最本質的區別就是一個需要大量的線程一個幾乎不需要線程,不知道看完這篇文章的你懂了嗎?當然如果你忘了匯仁智杰專家以前所講的,你可以點擊Web前端知識來了解你所需要的知識!