成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

異步編程到底在說啥?

開發 前端
如果是在單核系統下,CPU會不斷在處理文件線程和A函數線程間切換,看上去這兩個線程就好像在同時運行,但如果是在多核系統下,這兩個線程可以真正的并行起來。

[[432994]]

大家好,我是小風哥。

有的同學可能注意到了最近更新頻率有點慢,除了工作外小風哥也確實在忙些其它事情,這里先賣個關子,過段時間會和大家匯報的圖片。

之前很多同學在微信上問能不能講講異步編程是怎么一回事兒,今天就和大家簡單聊一聊這個話題。

我們以函數調用為例,假設有這樣的代碼:

  1. void B() { 
  2.   lines = read(filename); 
  3.   sum(lines); 
  4.  
  5. void A() { 
  6.   ... 
  7.   B(); 
  8.   ... 

代碼非常簡單,B函數讀取一個文件,文件里保存的是一行行數據,然后加和,A函數中的某個位置調用B函數。

此時,我們說這是同步調用,因為A函數后續代碼必須等待B函數處理完文件才能繼續執行。

隨著業務不斷發展,B函數處理的文件越來越龐大,此時處理一次文件耗時2小時,假設A函數后還有一行重要的代碼:

  1. void A() { 
  2.   ... 
  3.   B(); 
  4.   something_important(); 
  5.   ... 

這就意味著調用B函數后需要等待2個小時才能執行到something_important這行代碼,而something_important函數對時間要求非常苛刻,該怎樣改進呢?

其實很簡單,我們可以在B函數內部創建一個線程,在線程中處理文件:

  1. void handle_file() { 
  2.   lines = read(filename); 
  3.   sum(lines); 
  4.  
  5. void B() { 
  6.   thread t(handle_file); 
  7.  
  8. void A() { 
  9.   ... 
  10.   B(); 
  11.   something_important(); 
  12.   ... 

這樣B函數被調用后創建完線程即可立即返回,緊接著開始執行something_important這行代碼,CPU在執行something_important這行代碼時可能文件還沒有開始處理,這樣函數A不再依賴于文件處理,這時我們說函數B函數就是異步調用的,函數A異步于文件處理。

如果是在單核系統下,CPU會不斷在處理文件線程和A函數線程間切換,看上去這兩個線程就好像在同時運行,但如果是在多核系統下,這兩個線程可以真正的并行起來。

在編程語境下,異步往往和線程進程等相關。

最后舉一個例子。

同步就好比你排隊去自助售票機取電影票(話說小風哥已經很久很久沒有去電影院看電影了),你必須排隊等待前一個人取完電影票才能到你,你不能在前一個取票的過程中取自己的票,這時我們說取電影票時你和前一個人是同步的。

而異步就好比去吃大餐,你在座位上看菜單點菜,其它人也可以點菜,你不需要等待其它人吃完飯才能下單,這時我們說你點菜和其它人吃飯是異步的。

本文轉載自微信公眾號「碼農的荒島求生」,可以通過以下二維碼關注。轉載本文請聯系碼農的荒島求生公眾號。

 

責任編輯:武曉燕 來源: 碼農的荒島求生
相關推薦

2021-01-27 05:25:44

Go語言函數

2020-11-27 19:08:51

AI 數據人工智能

2022-04-19 15:33:53

數據模型

2024-11-05 09:32:47

2017-03-16 14:31:11

2015-06-30 14:33:52

物聯網

2015-09-02 09:56:33

大數據

2016-04-05 10:21:25

大數據元數據數據分析

2023-06-11 17:02:24

數字化轉型數字經濟

2019-07-17 10:10:34

Netty版本Event

2013-04-01 15:38:54

異步編程異步編程模型

2020-11-02 12:47:56

性能優化

2021-11-16 23:07:59

手機性能技術

2010-08-09 09:09:36

Linux與BSD的區

2020-03-09 16:43:06

腳本語言瀏覽器JavaScript

2019-05-28 09:19:57

5G華為美國

2020-10-08 14:45:36

Windows XPWindows微軟

2023-09-12 16:36:39

操作系統CPU周期性

2015-08-26 08:41:19

物聯網

2012-04-27 10:13:08

云計算數據IaaS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精品综合 | 操网站 | 欧美综合一区二区 | 国产成人精品久久二区二区 | 久久久久亚洲精品 | 麻豆国产精品777777在线 | 男人的天堂亚洲 | 九九久久这里只有精品 | 超碰激情 | 婷婷开心激情综合五月天 | 国产在线a | 欧美在线观看一区 | 成人一区在线观看 | 久久国产一区二区三区 | 伊人精品视频 | 亚洲欧美高清 | 尤物在线| 午夜天堂精品久久久久 | 美女视频网站久久 | 精品国产欧美一区二区 | 国产成人精品网站 | 久久久久免费精品国产小说色大师 | 久久精品国产99国产精品亚洲 | 成人国产综合 | 99久久精品国产一区二区三区 | 亚洲精品字幕 | 伊人网综合在线观看 | 奇米久久 | 天堂成人国产精品一区 | 人人干人人舔 | 黄篇网址 | 91在线视频播放 | 欧美一级免费看 | 黄色免费网| 精品无码三级在线观看视频 | 久久精品国产一区 | 国产欧美精品区一区二区三区 | 日本三级做a全过程在线观看 | 亚洲精品一区二区三区四区高清 | 国产精品一区二区不卡 | 久久久成人动漫 |