找回密码
 立即注册
楼主: 王昱顺

最佳入门多线程示例讲解-核心代码简单易懂,仅44行代码

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-2-1 09:24:53 | 显示全部楼层
图片中画红圈的这句是切换的是同一任务的不同状态还是不同任务的状态?
Snipaste_2024-02-01_09-23-03.png

点评

切换的是同一线程中的不同状态,Task为全局线程指针,线程前定义当前线程指针,这样GetDealy函数就不用挨个线程声明了,拥有通用性  详情 回复 发表于 2024-2-1 10:25
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2218

回帖

5450

积分

版主

积分
5450
发表于 2024-2-1 10:25:29 | 显示全部楼层
38009*** 发表于 2024-2-1 09:24
图片中画红圈的这句是切换的是同一任务的不同状态还是不同任务的状态?
...

切换的是同一线程中的不同状态,Task为全局线程指针,线程前定义当前线程指针,这样GetDealy函数就不用挨个线程声明了,拥有通用性
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-2-1 11:56:31 | 显示全部楼层
你的这个第二段程序中的task初始化时,应该赋值为0吧,初始化不赋值,这样可以吗?
Snipaste_2024-02-01_11-55-02.png

点评

前面只是引出问题所在,这部分并不算是后面讲的多线程代码。而且我这个框架更像是状态机混合软定时器的伪多线程。并不算真的多线程。  详情 回复 发表于 2024-2-1 12:33
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2218

回帖

5450

积分

版主

积分
5450
发表于 2024-2-1 12:33:57 | 显示全部楼层
38009*** 发表于 2024-2-1 11:56
你的这个第二段程序中的task初始化时,应该赋值为0吧,初始化不赋值,这样可以吗?
...

前面只是引出问题所在,这部分并不算是后面讲的多线程代码。而且我这个框架更像是状态机混合软定时器的伪多线程。并不算真的多线程。
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-2-1 13:09:21 | 显示全部楼层
王*** 发表于 2024-2-1 12:33
前面只是引出问题所在,这部分并不算是后面讲的多线程代码。而且我这个框架更像是状态机混合软定时器的伪 ...

我的接受能力有限,从你的最简单的看,这样,我好理解,直接看第3段,费劲,谢谢;
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:484
  • 最近打卡:2025-05-01 08:52:01
已绑定手机

23

主题

589

回帖

2813

积分

金牌会员

积分
2813
发表于 2024-2-1 13:10:43 | 显示全部楼层
你代码里面的config.h在哪?
不停地学习
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-2-1 13:12:36 | 显示全部楼层
WH*** 发表于 2024-2-1 13:10
你代码里面的config.h在哪?

在这了,你可以复制:

#ifndef __CONFIG_H
#define __CONFIG_H

#include "stc8h.h"

// 包含基础C支持代码
#include "intrins.h"
#include "math.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

// 变量类型重定义
#define u8 unsigned char
#define u16 unsigned int
#define u32 unsigned long
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:484
  • 最近打卡:2025-05-01 08:52:01
已绑定手机

23

主题

589

回帖

2813

积分

金牌会员

积分
2813
发表于 2024-2-1 13:22:03 | 显示全部楼层
不停地学习
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-2-1 13:33:40 | 显示全部楼层

我也在学习,可以一起交流,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-2-1 14:25:11 | 显示全部楼层
我看了代码后,我感觉你这个线程状态和任务状态是同一个东西,没有什么区别,至少是我没有看出区别,是这样的?

点评

是这样的,没区别  发表于 2024-2-1 14:28
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:30 , Processed in 0.758273 second(s), 107 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表