RT-thread线程创建:动态线程与静态线程
本文介绍了如何创建一个动态线程和一个静态线程
RT-thread版本:RT-thread system 3.1.0
开发环境:MDK5
为了编程方便,创建了sample1.c文件,然后添加到工程中
话不多说,先上代码
#include "rtthread.h" #define stack_size 1024 //设置动态线程栈大小
#define priority 25 //设置优先级
#define tick 10 //时间片 static rt_thread_t tid1 = NULL; //指针初始化为NULL static void thread1_entry(void *parameter) //线程1入口函数
{
rt_base_t i;
rt_uint16_t count = ;
for(i = ; i < ; i++)
{
rt_kprintf("thread1, count: %d\n", count++); } } ALIGN(RT_ALIGN_SIZE); static struct rt_thread thread2; static char thread_stack[]; static void thread2_entry(void *parameter) //线程2入口代码
{
rt_base_t i, count = ;
for(i = ; i < ; i++)
{
rt_kprintf("thread2, count: %d\n", count++); }
rt_kprintf("thread2 exit!\n"); } void sample1(void *parameter) //线程创建函数
{
tid1 = rt_thread_create("thread1",
thread1_entry,
RT_NULL,
stack_size, priority, tick
);
if(tid1 != NULL)
rt_thread_startup(tid1);
rt_thread_init(&thread2, "thread2", thread2_entry, RT_NULL, &thread_stack[], sizeof(thread_stack), priority-, tick);
rt_thread_startup(&thread2); }
MSH_CMD_EXPORT(sample1, RT-Thread first sample); //添加到msh命令列表中
在sample1.c中添加上述代码,点击
按钮进行仿真,在串口框中输入“sample1”,即可看到效果如下图。

线程2输出“thread2 exit!”后被系统自动删除,线程1开始执行。
对于能够执行结束的线程,系统在执行结束后,自动删除。
学习RT-thread推荐书籍:嵌入式实时操作系统RT-Thread设计与实现,还是很不错的。
RT-thread官网也有视频教程,视频可以看完书再看,容易接受一点。
RT-thread线程创建:动态线程与静态线程的更多相关文章
- 第三十三天- 线程创建、join、守护线程、死锁
1.线程,线程创建 概念:在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程,线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责 ...
- Java多线程01(Thread类、线程创建、线程池)
Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于 ...
- 26_多线程_第26天(Thread、线程创建、线程池)_讲义
今日内容介绍 1.多线程 2.线程池 01进程概念 A:进程概念 a:进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能 ...
- 17、多线程 (Thread、线程创建、线程池)
进程概念 *A:进程概念 *a:进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程的概念 *A:线程的概念 *a ...
- 多线程(Thread、线程创建、线程池)
第1章 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程 ...
- java基础(26):Thread、线程创建、线程池
1. 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并 ...
- 多线程、线程池、线程创建、Thread
转载自https://www.cnblogs.com/jmsjh/p/7762034.html 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行 ...
- Java 并发--线程创建
随着处理器的多核化,为提高处理器的资源利用率应用程序的并发变应运而生了.现在的操作系统是多任务操作系统,多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的内存空间 ...
- python 线程创建和传参(28)
在以前的文章中虽然我们没有介绍过线程这个概念,但是实际上前面所有代码都是线程,只不过是单线程,代码由上而下依次执行或者进入main函数执行,这样的单线程也称为主线程. 有了单线程的话,什么又是多线程? ...
- (转)Linux内核本身和进程的区别 内核线程、用户进程、用户线程
转自:http://blog.csdn.net/adudurant/article/details/23135661 这个概念是很多人都混淆的了,我也是,刚开始无法理解OS时,把Linux内核也当做一 ...
随机推荐
- .NET Core 中使用 Humanizer 显示友好时间格式
今天在将一个 .net framework 项目迁移至 .net core 的过程中,在迁移到显示友好时间格式(比如“1分钟前”,“1小时前”)的代码时,找了找看有没有对应的开源库,结果找到了 Hum ...
- 一台虚拟机配置nginx反向代理+3个apache虚拟主机
三个虚拟主机通过一张网卡添加三个IP来实现 一.安装nginx 1.解决依赖 [root@xuegod1 ~]# yum groupinstall "Development Tools&qu ...
- SICP 1.6-1.8
1.6由于scheme应用序求值的性质,该函数会陷入循环(一直计算 improve guess x) 1.7 值过小,0.001这个精度远远不够... 值过大,由于浮点数精度有限,(比如使用IEEE7 ...
- jquery 复选框操作-prop()的使用
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- c# windows程序调用本地输入法
原文:c# windows程序调用本地输入法 好久没写博客了,今天写了一个DEMO,在WINform程序中调用本地输入法,并在窗体中显示出来.其中使用到了很多API,现把代码贴出来,供大家参考 ...
- Microsoft Enterprise Library 5.0 系列(四)
企业库日志应用程序模块工作原理图: 从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中LogFilter,Trace Source,Trace Listener,Log Formatter的信 ...
- 使用checkpoint做代理服务器
version:R80.30 T200 Step 1:编辑刀片的属性,开启http/https代理,如下图: Step 2:配置访问策略,如下图: Step 3:配置客户端浏览器如下图: Step 4 ...
- 了解 XML 数字签名
http://www.cnblogs.com/flyxing/articles/91734.html http://www.cnblogs.com/wuhong/archive/2010/12/20/ ...
- GIS基础软件及操作(九)
原文 GIS基础软件及操作(九) 练习九.水文分析 水文分析:根据DEM提取河流网络,计算流水累积量.流向.根据指定的流域面积大小自动划分流域 水文分分析工具 (1)通过Arctoolbox:水文分析 ...
- asp.net core2.0中网站发布的时候,视图文件不被打包成dll
项目csproj文件里面加 <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <Target ...