本文主要是介绍SylixOS中的线程【12】--- 线程启停,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
接口
API | 宏 | 说明 |
---|---|---|
API_ThreadRestart | Lw_Thread_Restart | 线程重新启动函数。,这里不改变时间片属性,不能因为重启而获得更多的时间片 |
API_ThreadRestartEx | Lw_Thread_RestartEx | 线程重新启动函数。,这里不改变时间片属性,不能因为重启而获得更多的时间片 |
API_ThreadStartEx | Lw_Thread_StartEx | 启动线程 |
API_ThreadStart | Lw_Thread_Start | 启动线程 |
API_ThreadStop | 停止一个线程 | |
API_ThreadContinue | 恢复一个被停止的线程 |
/*********************************************************************************************************
** 函数名称: API_ThreadRestart
** 功能描述: 线程重新启动函数。,这里不改变时间片属性,不能因为重启而获得更多的时间片(不得在中断中调用)
** 输 入 : ulId 句柄
** pvArg 参数
** 输 出 :
*********************************************************************************************************/
ULONG API_ThreadRestart (LW_OBJECT_HANDLE ulId, PVOID pvArg)
/*********************************************************************************************************
** 函数名称: API_ThreadRestartEx
** 功能描述: 线程重新启动函数。,这里不改变时间片属性,不能因为重启而获得更多的时间片(不得在中断中调用)
** 输 入 : ulId 句柄
** pfuncThread 线程新的入口 (LW_NULL 表示不改变)
** pvArg 参数
** 输 出 :
*********************************************************************************************************/
ULONG API_ThreadRestartEx (LW_OBJECT_HANDLE ulId, PTHREAD_START_ROUTINE pfuncThread, PVOID pvArg)
/*********************************************************************************************************
** 函数名称: API_ThreadStart(不得在中断中调用)
** 功能描述: 启动线程
** 输 入 : ulId 线程ID
** 输 出 :
*********************************************************************************************************/
ULONG API_ThreadStart (LW_OBJECT_HANDLE ulId)
/*********************************************************************************************************
** 函数名称: API_ThreadStartEx
** 功能描述: 启动线程(不得在中断中调用)
** 输 入 : ulId 线程ID
** bJoin 是否合并线程
** ppvRetValAddr 存放线程返回值的地址
** 输 出 : ERROR
*********************************************************************************************************/
ULONG API_ThreadStartEx (LW_OBJECT_HANDLE ulId, BOOL bJoin, PVOID *ppvRetValAddr)
/*********************************************************************************************************
** 函数名称: API_ThreadStop
** 功能描述: 停止一个线程
** 输 入 : ulId 线程 ID
** 输 出 : ERROR
*********************************************************************************************************/
ULONG API_ThreadStop (LW_OBJECT_HANDLE ulId)
/*********************************************************************************************************
** 函数名称: API_ThreadContinue
** 功能描述: 恢复一个被停止的线程
** 输 入 : ulId 线程 ID
** 输 出 : ERROR
*********************************************************************************************************/
ULONG API_ThreadContinue (LW_OBJECT_HANDLE ulId)
- API_ThreadInit接口创建的线程,需要调用API_ThreadStart接口才能运行,如果使用API_ThreadRestartEx接口还可选择启动时同时线程合并。
- 运行中的线程,可以调用API_ThreadRestart重新从头开始运行,如果使用API_ThreadRestartEx接口还可选择指定新的线程执行函数。
- 运行中的线程,可以通过API_ThreadStop接口来停止运行,进入LW_THREAD_STATUS_STOP状态,该线程将不再被调度器选择运行,只有调用API_ThreadContinue接口才可以退出LW_THREAD_STATUS_STOP状态继续运行。那线程的停止继续与线程的挂起和恢复又有啥异同点呢?
示例
这篇关于SylixOS中的线程【12】--- 线程启停的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!