线程相关操作
线程相关的操作包括:创建/初始化、启动、运行、删除/脱离。
动态线程与静态线程的区别:动态线程是系统自动从动态内存堆上分配栈空间与线程句柄(初始化heap之后才能使用create创建动态线程),静态线程是由用户分配栈空间与线程句柄。
线程任务执行完毕,系统会自动回收资源,无需调用删除函数。
获得当前线程
在程序的运行过程中,相同的一段代码可能会被多个线程执行,在执行的时候可以通过rt_thread_self();获得当前执行的线程句柄。
让出处理器资源,让出处理器后,当前线程仍然处于就绪态。
rt_thread_yield()
线程睡眠
rt_thread_sleep();
rt_thread_delay();
线程控制函数,可改变优先级、启动线程、删除线程、绑定CPU(多核)
rt_thread_control();
设置和删除idle线程hook函数
rt_thread_sethook();
rt_thread_delhook();
空闲线程是一个线程状态永远为就绪态的线程,因此设置的钩子函数必须保证空闲线程在任何时刻都不会处于挂起状态,例如rt_thread_delay(),rt_sem_take()等可能会导致线程挂起的函数都不能使用。
设置调度器hook函数,在系统线程切换时,这个钩子函数将被调用
rt_scheduler_sethook();