当前位置: 首页 > news >正文

同步 vs 异步 最直白的区别

让我们用更简单的方式解释:


同步 vs 异步 最直白的区别

想象你(父进程)要完成200份作业(计算500000000-500000199的素数):

  1. 同步方式(单进程)

    • 亲自做第1份 → 做完才做第2份 → … → 做完第200份
    • 特点:必须等前一份做完才能开始下一份,严格按照顺序。
  2. 异步方式(多进程)

    • 雇了200个帮手(fork()创建子进程)
    • 每个帮手同时独立完成1份作业
    • 特点:所有作业同时进行,谁先做完谁先喊"完成"(printf输出)

你的代码关键点分析

for (int i = MIN; i < MAX; i++) {pd = fork();  // 雇帮手(创建子进程)if (pd == 0) { // 帮手的工作(子进程计算素数)return 0; // 做完就下班} // 你(父进程)继续雇下一个帮手,不等当前帮手完成
}
  • 为什么是异步?
    父进程的for循环只管"雇人"(fork),不等待帮手是否完成工作,雇完200人就直接进入最后的wait循环。

判断同步/异步的终极技巧

看这个循环:

for (...) {fork(); // 创建子进程后// 这里有没有立即wait? → 没有就是异步!
}
  • 如果有wait:同步(等一个孩子做完才继续循环)
  • 没有wait:异步(继续循环创建更多进程)

你的代码执行流程

父进程
├─ 循环1:创建子进程1(计算500000000)→ 子进程1独立运行
├─ 循环2:创建子进程2(计算500000001)→ 子进程2独立运行
├─ ...
└─ 循环200:创建子进程200 → 子进程200独立运行
最后父进程才用wait()等所有孩子结束

这就是典型的异步模式!

相关文章:

  • Github webhook 是什么以及它的用途
  • 强化学习的数学原理(四)Value iteration Policy iteration
  • LLamaIndex中经常使用的四个模块
  • 2024年第九届团队程序设计天梯赛c++题解L1-L3-1(附PTA网址)
  • 6 CMD 与 PowerShell 指令大全、C 程序终端运行、字符编码切换指南
  • 【AI工具】用大模型生成脑图初试
  • C++学习记录:
  • 2025主流报表软件评测和推荐
  • 【DeepSeek答】如何成为一名科技领域陪同口译,阶段性学习目标是什么
  • FreeRTOS之消息队列
  • Spring Boot 应用程序中配置使用consul
  • 20250416在荣品的PRO-RK3566开发板的Android13下编译native C的应用程序的步骤
  • 免费使用RooCode + Boomerang AI + Gemini 2.5 Pro开发套件
  • 【技术派后端篇】深度剖析 Knife4j:从概述到整合及功能优势
  • RK3568 更换显示logo
  • 赋能顶尖AI平台:如何加速高质量AI音乐生成?
  • 架构风格(高软59)
  • STM32单片机入门学习——第38节: [11-3] 软件SPI读写W25Q64
  • Python学习之路(三)
  • 基于MyBatis自定义拦截器实现数据库字段加密脱敏
  • 网站开发的意义和目的/互联网行业最新资讯
  • 邢台各种类型网站建设售后完善/网站关键词如何优化
  • 山东省住房城乡建设厅/怎样优化网站排名靠前
  • 有哪些企业可以做招聘的网站有哪些/seo优化咨询
  • wordpress主题the7.6/网站排名优化服务
  • 单位做网站备案用身份证有啥用/软文写作要求