这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » Thread - MiCO RTOS的线程控制

共1条 1/1 1 跳转至

Thread - MiCO RTOS的线程控制

专家
2015-08-06 15:58:57     打赏
MiCO RTOS的线程控制 1. 概述

通过MiCO RTOS线程控制API可以在系统中定义,创建,控制和销毁线程。

  • 线程的优先级分为10级,从0-9,级数越低,优先级越高。
  • 高优先级的线程可以抢占低优先级线程,如果高优先级线程不能挂起,会导致低优先级的线程无法得到时间去运行。
  • 相同优先级的各个线程通过时间片轮转的方式分时运行,使得这些线程看起来是同时运行的。

在MiCO系统初始化时,会创建一个以函数int application_start(void)为主执行体的线程,该线程的优先级是 7(MICO_APPLICATION_PRIORITY)。
一个线程可以处于以下几种状态:

  • RUNNING,运行: 线程正在运行中,在同一个时间,MiCO RTOS中之可能有一个线程处于运行状态。
  • Ready,就绪: 线程已经就绪并且等待运行。一旦当前的运行线程被终止,或者挂起,所有就绪的线程中优先级最高的线程将会变成运行状态。
  • Suspend,挂起: 线程正在等待事件(一段时间,信号量,互斥锁,消息队列)发生后,转换成就绪状态。
  • Terminate,终止: 线程处于非活动状态,在MiCO系统的IDLE线程中,所有的非活动状态的线程所拥有的私有资源将会被自动销毁。
  • 共享资源(如通过malloc创建的内存区块)需要通过人工进行销毁。

2. API 列表


API Description

mico_rtos_create_thread 创建并开始一个新的线程
mico_rtos_delete_thread 删除一个线程,将该线程置于终止状态
mico_rtos_suspend_thread 挂起一个线程
mico_rtos_suspend_all_thread 始终执行当前线程,并中断OS调度
mico_rtos_resume_all_thread 恢复OS调度
mico_rtos_thread_join 使当前线程挂起,直到另一个线程终止
mico_rtos_thread_force_awake 强制唤醒一个挂起的线程
mico_rtos_is_current_thread 查询一个线程是否是当前正在运行的线程
mico_thread_sleep 使一个线程挂起一段时间,时间单位是:秒
mico_thread_msleep 使一个线程挂起一段时间,时间单位是:毫秒




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]