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

企业网站推广品牌快速搭建外贸网站

企业网站推广品牌,快速搭建外贸网站,东莞 网站建设 定制水,网站建立不安全RT-Thread是支持多任务的操作系统#xff0c;多任务通过多线程的方式实现。线程是任务的载体#xff0c;也是RTT中最基本的调度单位。 线程执行时的运行环境称为上下文#xff0c;具体来说就是各个变量和数据#xff0c;包括所有的寄存器变量、堆栈、内存信息等。 特点 …RT-Thread是支持多任务的操作系统多任务通过多线程的方式实现。线程是任务的载体也是RTT中最基本的调度单位。 线程执行时的运行环境称为上下文具体来说就是各个变量和数据包括所有的寄存器变量、堆栈、内存信息等。 特点 RTT系统中总共存在两类线程分别是系统线程和用户线程系统线程由内核创建用户线程由应用程序创建这两类线程都会从内核对象容器中分配线程对象当线程被删除时也会从对象容器中删除。 RTT的线程调度器是抢占式的主要的工作就是从就绪线程列表中查找最高优先级线程保证最高优先级的线程能够被运行最高优先级的任务一旦就绪总能得到CPU的使用权。 当调度器调度线程切换时先将当前线程上下文保存起来再切回到这个线程时将该线程的上下文恢复。 struct rt_thread {/* rt object */char name[RT_NAME_MAX]; /** the name of thread */rt_uint8_t type; /** type of object */rt_uint8_t flags; /** threads flags */#ifdef RT_USING_MODULEvoid *module_id; /** id of application module */ #endifrt_list_t list; /** the object list */rt_list_t tlist; /** the thread list *//* stack point and entry */void *sp; /** stack point */void *entry; /** entry */void *parameter; /** parameter */void *stack_addr; /** stack address */rt_uint32_t stack_size; /** stack size *//* error code */rt_err_t error; /** error code */rt_uint8_t stat; /** thread status */#ifdef RT_USING_SMPrt_uint8_t bind_cpu; /** thread is bind to cpu */rt_uint8_t oncpu; /** process on cpu */rt_uint16_t scheduler_lock_nest; /** scheduler lock count */rt_uint16_t cpus_lock_nest; /** cpus lock count */rt_uint16_t critical_lock_nest; /** critical lock count */ #endif /*RT_USING_SMP*//* priority */rt_uint8_t current_priority; /** current priority */rt_uint8_t init_priority; /** initialized priority */ #if RT_THREAD_PRIORITY_MAX 32rt_uint8_t number;rt_uint8_t high_mask; #endifrt_uint32_t number_mask;#if defined(RT_USING_EVENT)/* thread event */rt_uint32_t event_set;rt_uint8_t event_info; #endif#if defined(RT_USING_SIGNALS)rt_sigset_t sig_pending; /** the pending signals */rt_sigset_t sig_mask; /** the mask bits of signal */#ifndef RT_USING_SMP //对称多处理器Cortex-M3是单核的void *sig_ret; /** the return stack pointer from signal */ #endifrt_sighandler_t *sig_vectors; /** vectors of signal handler */void *si_list; /** the signal infor list */ #endifrt_ubase_t init_tick; /** threads initialized tick */rt_ubase_t remaining_tick; /** remaining tick */struct rt_timer thread_timer; /** built-in thread timer */void (*cleanup)(struct rt_thread *tid); /** cleanup function when thread exit *//* light weight process if present */ #ifdef RT_USING_LWPvoid *lwp; #endif线程与线程之间用链接结构进行连接。 cleanup函数指针指向的函数会在线程退出的时候被idle线程回调一次执行用户设置的清理现场等工作。 线程属性 线程栈 每个RT-Thread线程具有独立的栈当进行线程切换时会将当前线程的上下文存在栈中当线程要恢复运行时再从栈中读取上下文信息进行恢复。 线程状态 stat 初始状态当线程刚开始创建还没开始运行时就处于就绪状态在初始状态下线程不参与调度定义为RT_THREAD_INIT。就绪状态在就绪状态下线程按照优先级排队等待被执行一旦当前线程运行完毕让出处理器操作系统会马上寻找最高优先级的就绪态线程运行定义为RT_THREAD_READY。运行状态线程当前正在运行。在单核系统中只有rt_thread_self()函数返回的线程处于运行状态。多核系统中可能就不止一个。定义为RT_THREAD_RUNNING。挂起状态也称阻塞态。它可能因为资源不可用而挂起等待或线程主动延时一段时间而挂起。在挂起状态下线程不参与调度。RT_THREAD_SUSPEND。关闭状态当线程运行结束时处于关闭状态。关闭状态的线程不参与线程的调度。RT_THREAD_CLOSE。 线程优先级 RTT最大支持256个优先级0~255数值越小的优先级越高0为最高优先级。 在一些资源比较紧张的系统中可以根据实际情况选择只支持8个或32个优先级的系统配置。 对于ARM Cortex-M系列普遍采用32个优先级。 最低优先级默认分配给空闲线程使用用户一般不使用。 在系统中当有比当前线程优先级更高的线程就绪时当前线程立刻被换出高优先级线程抢占处理器运行。 时间片 每个线程都有时间片这个参数但时间片仅对优先级相同的就绪态线程有效。 注意 作为一个实时系统一个优先级明确的实时系统如果一个线程中的程序陷入了死循环操作那么比它优先级的线程都将不能够得到执行。 因此线程中不能陷入死循环操作必须要有让出CPU使用权的操作如循环中调用延时函数或者主动挂起。 线程状态之间切换
http://www.zqtcl.cn/news/433993/

相关文章:

  • 大连网站建设与维护题库网站建设目标是
  • 威海网站开发询广西南宁网站运营
  • 网站的素材做logo长沙专业的网站建设企业
  • 网站显示速度的代码是什么情况专门做中式服装平台的网站
  • 驻马店做网站的公司大连网站模板建站
  • aso如何优化网站优化分析软件
  • IT周末做网站违反制度么wordpress 图床 插件
  • 成都网站建设scjsc888因网站建设关闭的公告
  • 唐山公司建设网站十大牌子网
  • 网站开发的选题依据电子商务网站建设内容
  • 中企动力做的网站被百度屏蔽推销网站话术
  • 四川网站制作广告设计自学网教程
  • 做个简单的企业小网站单纯做网站的公司
  • 河北省建设厅官方网站哈尔滨建设工程招聘信息网站
  • 茂名网站制作网页个人博客登录首页
  • 类似qq空间的网站wordpress 简历主题
  • 专业网站运营制作怎么写代码做网站
  • 安徽免费网站制作西安做行业平台网站的公司
  • 我想做服装网站怎么做网页设计优秀案例分析
  • 网站建设技术教程视频wordpress中文模版
  • 高端企业网站 程序纸牌网站建设
  • html制作网站推广最有效的办法
  • 做网站推广的工作内容凡客诚品创始人
  • 网站开发pc端和手机端外贸建设网站公司
  • 长沙哪家网站设计好上海成品网站
  • wordpress商城插件收费哪里可以做网站优化
  • 中国建设银行u盾下载假网站吗wordpress有没有付费
  • 海南哪家公司做网站开发一套管理系统多少钱
  • 做网站建设费用百姓网
  • 西安建设厅网站wpf做网站教程