回調函數的理解

int yuxiangrousi = 0; // 全局變量:魚香肉絲(醬油量)// 回調函數:媽媽處理醬油(將醬油加入魚香肉絲)
void mother_callback(int new_jiangyou)
{yuxiangrousi += new_jiangyou; // 把醬油放進魚香肉絲
}// 孩子買醬油(模擬異步操作,如另一個線程)
// 參數:媽媽的回調函數(處理醬油的函數)
void son_dajiangyou(void(*mother_callback)(int jiangyou_bought))
{int temp_jiangyou;temp_jiangyou = by_jiangyou(); // 假設調用買醬油的函數(未定義,模擬獲取醬油量)mother_callback(temp_jiangyou); // 調用媽媽的回調函數處理醬油
}// 媽媽做飯的主邏輯
void mother_cooking(void)
{cook_yuxiangshousi(); // 先做魚香肉絲(未定義,模擬烹飪步驟)son_dajiangyou(mother_callback); // 讓孩子去買醬油,回來后調用回調處理cook_soup(); // 做西紅柿雞蛋湯(未定義,模擬后續步驟)
}// 輔助函數(假設存在,實際需根據場景實現)
// int by_jiangyou(void);       // 買醬油(獲取醬油量,未實現)
// void cook_yuxiangshousi(void); // 做魚香肉絲(未實現)
// void cook_soup(void);         // 做湯(未實現)

代碼解釋:

  1. 全局變量yuxiangrousi記錄魚香肉絲中的醬油量(初始為 0)。
  2. 回調函數?mother_callback
    • 接收新買的醬油量(new_jiangyou),更新全局變量(模擬將醬油加入菜品)。
  3. son_dajiangyou?函數
    • 模擬孩子買醬油的過程(異步操作,如另一個線程)。
    • 調用by_jiangyou獲取醬油量(模擬購買),然后通過回調函數(mother_callback)通知媽媽處理醬油。
  4. mother_cooking?函數
    • 主邏輯:先做魚香肉絲(此時醬油量為 0),然后讓孩子買醬油(異步,不阻塞主線程),同時繼續做湯(模擬并行操作)。
    • 當孩子買完醬油(son_dajiangyou執行完畢),自動調用mother_callback更新魚香肉絲的醬油量(模擬異步回調的效果)。

關鍵概念(結合回調函數):

  • 異步模擬son_dajiangyou?模擬異步任務(如線程),mother_callback?作為回調函數,在任務完成后(買醬油回來)被調用。
  • 回調機制:媽媽(主線程)在做飯時,不需要等待孩子買醬油(避免阻塞),而是通過回調函數在醬油回來后處理,實現 “并行” 操作(實際在單線程中是順序執行,但邏輯上模擬異步)。

自己理解

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81770.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81770.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81770.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多部手機連接同一wifi的ip一樣嗎?如何更改ip

通常情況下,多部手機連接同一個WiFi時,它們的IP地址是各不相同的(在局域網內)。但是,從互聯網(外網)的角度看,它們共享同一個公網IP地址。讓我詳細解釋一下,并說明如何更…

環境溫度通過H2A.Zub和H3K27me3動態調控擬南芥細胞命運決定

2025年4月22日,中國科學院遺傳與發育生物學研究所肖軍研究組在Developmental Cell在線發表了題為Dynamic control of H2A.Zub and H3K27me3 by ambient temperature during cell fate determination in Arabidopsis的研究論文,本研究綜合運用ChIP-seq、C…

2024 吉林 CCPC

文章目錄 2024 吉林 CCPCL. Recharge(思維、分配)G. Platform Game(模擬)E. Connect Components (排序、思維)D. Parallel Lines 2024 吉林 CCPC 題目鏈接: Dashboard - The 2024 CCPC National Invitational Contest (Changchun) , The 17…

day13 leetcode-hot100-24(鏈表3)

234. 回文鏈表 - 力扣(LeetCode) 1.轉化法 思路 將鏈表轉化為列表進行比較 復習到的知識 arraylist的長度函數:list.size() 具體代碼 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode ne…

Vim文本編輯器快捷鍵用法以及簡單介紹

目錄 vim文本編輯器 簡介: 語法: vim模式介紹: 模式切換: 用法: 編輯模式: 一般模式: 命令模式: vim文本編輯器 簡介: 在命令行界面下,最常用的文本…

從 0 到 1:Spring Boot 與 Spring AI 深度實戰(基于深度求索 DeepSeek)

在人工智能技術與企業級開發深度融合的今天,傳統軟件開發模式與 AI 工程化開發的差異日益顯著。作為 Spring 生態體系中專注于 AI 工程化的核心框架,Spring AI通過標準化集成方案大幅降低 AI 應用開發門檻。本文將以國產大模型代表 ** 深度求索&#xff…

[Windows] 摸魚小工具:隱藏軟件(重制版)

由吾愛大神寫的摸魚工具: 數據存放路徑為C:\Users\用戶名\AppData\Local\HideSoft,如果不想用時,刪除軟件及此路徑下的HideSoft文件夾。如添加了開機啟動,刪除啟動菜單文件夾的快捷方式即可,或者刪除前在軟件中取消設置…

C++ 判斷文件的編碼類型

大多數文本編輯器,都會在文本文件的頭部插入一部分特殊的字節,用于輔助文本編輯器來判斷該文件的字符集編碼類型。 如:記事本 目前支持的字符集類型,通常為三種: Unicode、UTF8、UnicodeBIG、CP_ACP(默認…

時間序列噪聲模型分析軟件推薦與使用經驗

最近在論文大修2024年投稿的一篇文章,大修了2輪,最后一次還是重新投稿,其中有一個問題一直被審稿人懟,他認為我計算時間序列的趨勢的時候,沒有考慮時間的相關性,即對噪聲模型的估計不合理,會影響…

【redis實戰篇】第六天

摘要: 本文介紹了基于Redis的秒殺系統優化方案,主要包含兩部分:1)通過Lua腳本校驗用戶秒殺資格,結合Java異步處理訂單提升性能;2)使用Redis Stream實現消息隊列處理訂單。方案采用Lua腳本保證庫…

【Java Web】速通HTML

參考筆記: JavaWeb 速通HTML_java html頁面-CSDN博客 目錄 一、前言 1.網頁組成 1 結構 2 表現 3 行為 2.HTML入門 1 基本介紹 2 基本結構 3. HTML標簽 1 基本說明 2 注意事項 4. HTML概念名詞解釋 二、HTML常用標簽匯總 + 案例演示 1. 字體標簽 font (1)定義 (2)案例 2…

Oracle/openGauss中,DATE/TIMESTAMP與數字日期/字符日期比較

ORACLE 運行環境 openGauss 運行環境 0、前置知識 ORACLE:DUMP()函數用于返回指定表達式的數據類型、字節長度及內部存儲表示的詳細信息 SELECT DUMP(123) FROM DUAL; -- Typ2 Len3: 194,2,24 SELECT DUMP(123) FROM DUAL;-- Typ96 Len3: 49,50,51 -- ASCII值&am…

[學習]C++ 模板探討(代碼示例)

C 模板探討 文章目錄 C 模板探討一、模板基礎概念二、函數模板三、類模板1. 類模板的定義與使用2. 成員函數模板3. 類模板的靜態成員與繼承 四、模板進階特性1. 非類型模板參數2. 可變參數模板(Variadic Templates)3. 模板元編程(TMP&#xf…

人工智能-訓練AI模型涉及多個步驟

訓練AI模型涉及多個步驟,包括數據預處理、選擇合適的模型、訓練模型以及評估模型性能。下面是一個詳細的流程,以常見的機器學習任務——分類問題為例,展示如何使用Python中的scikit-learn庫來訓練一個簡單的AI模型。 步驟 1: 導入所需的庫 …

LVS+Keepalived 高可用

目錄 一、核心概念 1. LVS(Linux Virtual Server) 2. Keepalived 二、高可用架構設計 1. 架構拓撲圖 2. 工作流程 三、部署步驟(以 DR 模式為例) 1. 環境準備 2. 主 LVS 節點配置 (1)安裝 Keepali…

TCP 三次握手過程詳解

TCP 三次握手過程詳解 一、TCP握手基礎概念 1.1 什么是TCP握手 TCP三次握手是傳輸控制協議(Transmission Control Protocol)在建立連接時的標準過程,目的是確保通信雙方具備可靠的雙向通信能力。 關鍵結論:三次握手的本質是通過序列號同步和能力協商建立可靠的邏輯連接。 …

李宏毅NLP-7-CTC/RNN-T文本對齊

LAS LAS(Listen, Attend and Spell )模型,在語音識別中的解碼和訓練過程,具體內容如下: 解碼(Decoding) 公式 Y ? arg ? max ? Y log ? P ( Y ∣ X ) Y^* \arg\max_Y \log P(Y|X) Y?ar…

jQuery和CSS3卡片列表布局特效

這是一款jQuery和CSS3卡片列表布局特效。該卡片布局使用owl.carousel.js來制作輪播效果&#xff0c;使用簡單的css代碼來制作卡片布局&#xff0c;整體效果時尚大方。 預覽 下載 使用方法 在頁面最后引入jquery和owl.carousel.js相關文件。 <link rel"stylesheet&qu…

Microsoft 推出 Magentic-UI,多智能體引領網頁人機協作變革

當前&#xff0c;現代生產力與網頁操作緊密相連&#xff0c;信息檢索、表單填寫、儀表盤導航等網頁任務已成為工作流程的重要環節。然而&#xff0c;大量網頁任務仍依賴人工重復操作&#xff0c;效率低下且易出錯。與此同時&#xff0c;許多 AI 智能體雖追求自主運行&#xff0…

2023年6級第一套長篇閱讀

畫名詞概念&#xff0c;動詞概念 多處定位原詞加同義改寫 畫關鍵詞&#xff0c;多處定位直接就可以選A了 沒有定位的句子先比沒匹配到的段落&#xff0c;再匹配長的段落先易后難