diff --git a/rt-thread-version/rt-thread-standard/programming-manual/ipc1/ipc1.md b/rt-thread-version/rt-thread-standard/programming-manual/ipc1/ipc1.md index 8f4d905e409c05ce3b701593cc34b40276a16b9c..1a37b9e08a81971680053e1298da9f2063968f35 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/ipc1/ipc1.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/ipc1/ipc1.md @@ -74,7 +74,12 @@ rt_semaphore 对象从 rt_ipc_object 中派生,由 IPC 容器所管理,信 rt_uint8_t flag); ``` -当调用这个函数时,系统将先从对象管理器中分配一个 semaphore 对象,并初始化这个对象,然后初始化父类 IPC 对象以及与 semaphore 相关的部分。在创建信号量指定的参数中,信号量标志参数决定了当信号量不可用时,多个线程等待的排队方式。当选择 RT_IPC_FLAG_FIFO(先进先出)方式时,那么等待线程队列将按照先进先出的方式排队,先进入的线程将先获得等待的信号量;当选择 RT_IPC_FLAG_PRIO(优先级等待)方式时,等待线程队列将按照优先级进行排队,优先级高的等待线程将先获得等待的信号量。下表描述了该函数的输入参数与返回值: +当调用这个函数时,系统将先从对象管理器中分配一个 semaphore 对象,并初始化这个对象,然后初始化父类 IPC 对象以及与 semaphore 相关的部分。在创建信号量指定的参数中,信号量标志参数决定了当信号量不可用时,多个线程等待的排队方式。当选择 RT_IPC_FLAG_FIFO(先进先出)方式时,那么等待线程队列将按照先进先出的方式排队,先进入的线程将先获得等待的信号量;当选择 RT_IPC_FLAG_PRIO(优先级等待)方式时,等待线程队列将按照优先级进行排队,优先级高的等待线程将先获得等待的信号量。 + +> [!NOTE] +> 注:RT_IPC_FLAG_FIFO 属于非实时调度方式,除非应用程序非常在意先来后到,并且你清楚地明白所有涉及到该信号量的线程都将会变为非实时线程,方可使用 RT_IPC_FLAG_FIFO,否则建议采用 RT_IPC_FLAG_PRIO,即确保线程的实时性。 + +下表描述了该函数的输入参数与返回值: |**参数** |**描述** | |--------------------|-------------------------------------------------------------------| @@ -616,7 +621,7 @@ rt_mutex_t rt_mutex_create (const char* name, rt_uint8_t flag); |**参数** |**描述** | |------------|-------------------------------------------------------------------| | name | 互斥量的名称 | -| flag | 互斥量标志,它可以取如下数值: RT_IPC_FLAG_FIFO(不建议使用) 或 RT_IPC_FLAG_PRIO | +| flag | 互斥量标志,它可以取如下数值: RT_IPC_FLAG_FIFO 或 RT_IPC_FLAG_PRIO | |**返回** | —— | | 互斥量句柄 | 创建成功 | | RT_NULL | 创建失败 |