前言
在软件世界里面,超时是一个非常重要的概念。比如
● 当前线程暂时休眠1秒钟,休眠结束后继续执行
● 每5秒钟采集一下CPU利用率
● 数据发送失败,2秒钟以后再试一试
● 等待某种数据,但最多等待50毫秒
应用
//将当前任务休眠若干tick数,tick为时间单位,常见值为10毫秒
LITE_OS_SEC_TEXT UINT32 LOS_TaskDelay(UINT32 tick)
//获取信号量semHandle, 如果当前信号量不可用且timeout不为0,则最多等待timeout所指定的时间,在这段时间内如果信号量可用,则获取成功,否则获取失败。
LITE_OS_SEC_TEXT UINT32 LOS_SemPend(UINT32 semHandle, UINT32 timeout)
//从空的消息队列读取消息,或者向满的消息队列写消息时,如果timeout不为0,则最多等待timeout指定的时间,在这段时间内消息队列可读或可写,则进行对应的读写并返回成功,否则返回失败。
LITE_OS_SEC_TEXT UINT32 LOS_QueueRead(UINT32 queueID, VOID *bufferAddr, UINT32 bufferSize, UINT32 timeOut)
LITE_OS_SEC_TEXT UINT32 LOS_QueueWrite(UINT32 queueID, VOID *bufferAddr, UINT32 bufferSize, UINT32 timeOut)
//获取互斥锁,如果当前互斥锁被其它线程占用,则最多等待timeout指定的时间,此时间内其它线程释放了互斥锁并被本线程抢到则返回成功,否则返回失败。
LITE_OS_SEC_TEXT UINT32 LOS_MuxPend(UINT32 mux