![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线程
文章平均质量分 55
SylixOS线程相关特性,接口,用法,原理等
ScilogyHunter
一码流年雨疏疏,莫道E人岁月蹴。。。
展开
-
SylixOS中的线程【23】--- 线程条件变量
条件变量是多线程间的一种同步机制,能很好的解决以上问题。条件变量与互斥锁一起使用时,允许线程以无竞争的形式等待条件的发生。条件本身由互斥量保护,因此线程在改变条件之前必须首先锁住互斥量,其他线程在获得互斥量之前不会察觉到条件的改变。原创 2022-03-20 21:30:17 · 263 阅读 · 0 评论 -
SylixOS中的线程【22】--- 线程一次性初始化
有些情况,我们需要对一些多个线程共同使用的对象只进行一次性初始化,如线程键消息队列,信号量等。如果我们进行多次初始化就会出现错误。原创 2022-03-20 20:27:34 · 236 阅读 · 0 评论 -
SylixOS中的线程【21】--- 线程让出(yield)
调用线程yield接口时,并不会改变线程优先级,只是将线程自己剩余的时间片清零,这样当前线程就会被调出,并将下一个就绪同优先级线程运行,那让出的线程就是当前同优先级就绪线程环中的最后一个。原创 2022-03-20 14:20:58 · 302 阅读 · 0 评论 -
SylixOS中的线程【19】--- 线程常规参数获取和设置
接口这里获取的参数都是当前有效值,设置参数也是立即生效。而API_ThreadAttrxxxx系列接口设置的是属性块变量里的参数,只有在线程创是调用该属性块才会生效。API说明API_ThreadDesc获得线程基本信息API_ThreadGetName获得指定线程名API_ThreadGetPriority获得线程优先级, 中断中不可能发生优先级的转变,所以这里不必关中断API_ThreadGetSchedParam获得线程调度参数API_Threa原创 2022-03-20 12:30:26 · 471 阅读 · 0 评论 -
SylixOS中的线程【20】--- 线程记事本
概念接口用法原创 2022-03-19 17:54:34 · 184 阅读 · 0 评论 -
SylixOS中的线程【18】--- 线程看门狗
概念接口用法原创 2022-03-19 17:52:40 · 296 阅读 · 1 评论 -
SylixOS中的线程【17】--- 线程连接和分离
线程有两种状态可连接状态(joinable)和不可连接状态(unjoinable,也就是分离状态detach)。如果线程是joinable状态,当线程函数自己退出时或exit时都不会释放线程所占内核资源(堆栈和线程描述符等),只有当调用了join方法后这些资源才会被释放。若是unjoinable状态的线程,这些资源在线程函数退出时或exit时自动会被释放。原创 2022-03-19 17:35:12 · 434 阅读 · 0 评论 -
SylixOS中的线程【16】--- 线程亲和度
线程是调度的最小单位,对于多核处理器,可以同时运行多个线程。作为优先级抢占系统SylixOS优先运行优先级最高的n个线程,这样默认情况下同一线程在不同时间可能在不同的CPU上执行,SylixOS尽量保证个CPU执行时间基本相等(负载均衡)。为了提高某些线程的实时性,可以绑定线程到某CPU上,则该线程只在绑定(亲和)的CPU上执行,即便本CPU忙碌而其他CPU闲置。原创 2022-01-03 17:27:23 · 383 阅读 · 0 评论 -
SylixOS中的线程【15】--- 线程私有变量
线程私有变量原创 2022-01-02 19:18:28 · 367 阅读 · 0 评论 -
SylixOS中的线程【14】--- 线程CPU占用率
线程CPU利用率原创 2022-01-02 18:38:49 · 584 阅读 · 0 评论 -
SylixOS中的线程【13】--- 线程安全模式
概念为防止某些关键过程操作线程被删除或重启,SylixOS提供线程安全模式相关接口。线程进入安全模式后, 任何对本线程的删除或重启操作都会推迟到线程退出安全模式时进行。接口/*********************************************************************************************************** 函数名称: API_ThreadSafe** 功能描述: 线程进入安全模式(不得在中断中调用)** 输 入原创 2022-01-02 17:38:29 · 2369 阅读 · 0 评论 -
SylixOS中的线程【12】--- 线程启停
接口API宏说明API_ThreadRestartLw_Thread_Restart线程重新启动函数。,这里不改变时间片属性,不能因为重启而获得更多的时间片API_ThreadRestartExLw_Thread_RestartEx线程重新启动函数。,这里不改变时间片属性,不能因为重启而获得更多的时间片API_ThreadStartExLw_Thread_StartEx启动线程API_ThreadStartLw_Thread_Start启动线程原创 2021-12-31 09:00:31 · 156 阅读 · 0 评论 -
SylixOS中的线程【11】--- 线程锁
线程锁用于关闭线程调度,也可称之为调度锁,防止关键流程被其他线程打断或重入。原创 2021-12-25 12:36:16 · 166 阅读 · 0 评论 -
SylixOS中的线程【10】--- 线程互斥
互斥访问是操作系统中一个经典的理论问题,用于实现对共享资源的一致性访问,SylixOS 中实现了不同的函数来提供多种互斥机制。原创 2021-12-25 11:47:45 · 204 阅读 · 0 评论 -
SylixOS中的线程【9】--- 线程睡眠及唤醒
线程延时或线程睡眠就是让线程让出CPU并处于睡眠状态,从而调度器可以调度其他线程,当线程睡眠结束后,重新恢复运行。原创 2021-12-25 11:32:25 · 465 阅读 · 0 评论 -
SylixOS中的线程【8】--- 多线程安全
多线程模型与生俱来的优势使得 SMP 多核处理器实现真实的并发执行,但多线程带来便利的同时也引入了一些问题,例如全局资源互斥访问的问题。为了能够安全地访问这些资源,需要程序设计中考虑避免竞争条件和死锁。多线程安全是在多线程并发执行的情况下,一种资源可以安全地被多个线程使用的一种机制。多线程安全包括代码临界区的保护和可重入性等。代码的临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界区代码的执行不被中断,在进入临界区之前必须关闭中断,而临界区代码执行完后,要立即开中断。原创 2021-12-25 11:12:27 · 1778 阅读 · 0 评论 -
SylixOS中的线程【7】--- 线程清理
概念线程可以安排它退出时需要调用的函数,这样的函数称为线程清理处理程序,一个线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说,他们的执行顺序与它们注册时相反,如下图所示。接口#include <pthread.h>void pthread_cleanup_pop(int iNeedRun);void pthread_cleanup_push(void (*pfunc)(void *), void *arg);如果 iNeedRun 是 0,那么清理函数将不被调用,pth原创 2021-12-24 08:51:09 · 407 阅读 · 0 评论 -
SylixOS中的线程【6】--- 线程取消
概念线程取消的方法是向目标线程发送 Cancel 信号,但如何处理 Cancel 信号则由目标线程自己决定,需要注意的是,线程取消是一个复杂的过程,需要考虑资源的一致性问题。取消一个线程要确保该线程能够释放其所持有的任何锁、分配的内存,使整个系统保持一致性。在很多复杂情况下要保证这种正确性是有一定困难的。一种简单的线程取消:取消线程调用一个取消线程的函数,被取消线程死亡。在这种情况下,被取消线程所持有的资源得不到释放。取消线程负责保证被取消者处于可安全取消状态,在一个要求可靠性高的系统中,这种保证非常原创 2021-12-24 08:46:49 · 439 阅读 · 0 评论 -
SylixOS中的线程【5】--- 线程结束
线程结束意味着线程生命周期终止。线程结束包括线程取消、线程退出和线程删除3 种情况。线程删除线程删除是将线程的资源返还给操作系统,删除后的线程不能再被调度。API说明API_ThreadDelete线程删除函数。API_ThreadForceDelete线程强制删除函数。API_ThreadExit线程自行退出。exit内核线程或者进程退出_exit内核线程或者进程退出, 不执行 atexit 安装的函数atexit进程退出时执行的操作.原创 2021-12-20 09:03:29 · 241 阅读 · 0 评论 -
SylixOS中的线程【4】--- 线程挂起和恢复
线程挂起宏接口API接口Lw_Thread_SuspendAPI_ThreadSuspendLw_Thread_ResumeAPI_ThreadResumeLw_Thread_ForceResumeAPI_ThreadForceResumeLw_Thread_IsSuspendAPI_ThreadIsSuspend/**********************************************************************原创 2021-12-20 08:41:01 · 213 阅读 · 0 评论 -
SylixOS中的线程【3】--- 线程创建
SylixOS提供两种原生线程创建接口:API_ThreadCreate和API_ThreadInit。原创 2021-12-20 08:32:25 · 436 阅读 · 0 评论 -
SylixOS中的线程【2】--- 线程属性块及操作
线程属性块每一个 SylixOS 线程都有自己的属性,包括线程的优先级、栈信息、线程参数等。每一个线程属性块都由结构体 LW_CLASS_THREADATTR 组成,该结构体成员如下所示:typedef struct { PLW_STACK THREADATTR_pstkLowAddr; /* 全部栈区低内存起始地址 */ size_t THREADATTR_stGuardSize; /* 栈警戒区大小 */ size_t THREADATTR_stStackByteSize;/* 全部栈区原创 2021-12-20 08:30:36 · 519 阅读 · 0 评论 -
SylixOS中的线程【1】--- 线程操作API接口
SylixOS支持两类线程操作API接口:SylixOS原生接口和POSIX标准线程接口。对于应用程序建议使用POSIX标准接口以提高可移植性。SylixOS原生线程API接口API说明API_ThreadSetAffinity将线程锁定到指定的 CPU 运行.API_ThreadGetAffinity获取线程 CPU 亲和度情况API_ThreadAttrGetDefault获得线程内核默认属性块API_ThreadAttrGet获得指定线程属性块相关属性原创 2021-12-20 08:27:58 · 497 阅读 · 0 评论 -
SylixOS中的线程【0】--- 线程基础概念
线程线程又称为任务,是某个单一顺序的指令流,它是操作系统调度的最小单位。一个标准的线程由线程句柄(或 ID)、当前指令指针(PC)、CPU 寄存器集合和线程栈组成。每一个线程都是操作系统调度的单位。原创 2021-12-14 08:44:47 · 490 阅读 · 0 评论