本文介绍了如何创建一个动态线程和一个静态线程

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线程创建:动态线程与静态线程的更多相关文章

  1. 第三十三天- 线程创建、join、守护线程、死锁

    1.线程,线程创建 概念:在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程,线程顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责 ...

  2. Java多线程01(Thread类、线程创建、线程池)

    Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于 ...

  3. 26_多线程_第26天(Thread、线程创建、线程池)_讲义

    今日内容介绍 1.多线程 2.线程池 01进程概念 A:进程概念 a:进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能 ...

  4. 17、多线程 (Thread、线程创建、线程池)

    进程概念 *A:进程概念 *a:进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行, 即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线程的概念 *A:线程的概念 *a ...

  5. 多线程(Thread、线程创建、线程池)

      第1章 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程 ...

  6. java基础(26):Thread、线程创建、线程池

    1. 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并 ...

  7. 多线程、线程池、线程创建、Thread

    转载自https://www.cnblogs.com/jmsjh/p/7762034.html 多线程 1.1 多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念. 进程:进程指正在运行 ...

  8. Java 并发--线程创建

    随着处理器的多核化,为提高处理器的资源利用率应用程序的并发变应运而生了.现在的操作系统是多任务操作系统,多线程是实现多任务的一种方式. 进程是指一个内存中运行的应用程序,每个进程都有自己独立的内存空间 ...

  9. python 线程创建和传参(28)

    在以前的文章中虽然我们没有介绍过线程这个概念,但是实际上前面所有代码都是线程,只不过是单线程,代码由上而下依次执行或者进入main函数执行,这样的单线程也称为主线程. 有了单线程的话,什么又是多线程? ...

  10. (转)Linux内核本身和进程的区别 内核线程、用户进程、用户线程

    转自:http://blog.csdn.net/adudurant/article/details/23135661 这个概念是很多人都混淆的了,我也是,刚开始无法理解OS时,把Linux内核也当做一 ...

随机推荐

  1. scrapy技术进阶-URL路径依赖

    方法1: #!/usr/bin/python # -*- coding: gbk -*- import time from scrapy.spider import BaseSpider from s ...

  2. Spring Boot MyBatis 通用Mapper插件集成 good

    看本文之前,请确保你已经在SpringBoot中集成MyBatis,并能正常使用.如果没有,那么请先移步 http://blog.csdn.net/catoop/article/details/505 ...

  3. JS 小鸟飞

    <!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  4. linux命令行模式下实现代理上网 专题

    有些公司的局域网环境,例如我们公司的只允许使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是linux纯命令行的界面就....下面简单几步就可以实现了! 一.命令行界面的一般代理设置方 ...

  5. 线程间操作无效: 从不是创建控件“labMessage”的线程访问它。

    解决方法:1.在窗体加载时加上这一句 private void FormDate_Load(object sender, EventArgs e) { Control.CheckForIllegalC ...

  6. 微信小程序把玩(三十五)Video API

    原文:微信小程序把玩(三十五)Video API 电脑端不能测试拍摄功能只能测试选择视频功能,好像只支持mp4格式,值得注意的是成功之后返回的临时文件路径是个列表tempFilePaths而不是tem ...

  7. delphi读取ini文件

    ini文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如vb.vc.vfp.delphi等都提供了读写ini文件的方法,其中delphi中操作ini文件,最为简洁, ...

  8. 值得推荐的C/C++框架和库(深度好文)

    [本文系外部转贴,原文地址:http://www.cppblog.com/merlinfang/archive/2014/12/26/209311.html http://coolshell.info ...

  9. Windows环境下使用Node.js

    作者:短工邦技术部 - 陈文哲 Parse用的就是Node.js,所以我们要先了解什么是Node.js,以及做一些简单的操作. Node.js 的主要思路是:使用非阻塞的,事件驱动的 I/O 操作来保 ...

  10. 通过Graphics对象获取它所属的Control

    using System.Runtime.InteropServices;   [DllImport("user32.dll")] public static extern Int ...