Mbed OS 文档翻译 之 参考(API(RTOS(Semaphore)))

Semaphore

                                                                           

                                                                                 Semaphore 类层次结构

信号量管理对特定类型的共享资源池的线程访问。

                                                           Mbed OS 文档翻译 之 参考(API(RTOS(Semaphore)))_第1张图片

Semaphore 类参考

rtos::Semaphore 类参考

公共成员函数
  Semaphore (int32_t count=0)
  Semaphore (int32_t count, uint16_t max_count)
int32_t  wait (uint32_t millisec=osWaitForever)
int32_t  wait_until (uint64_t millisec)
osStatus  release (void)
  ~Semaphore ()

Semaphore 示例

使用信号量来保护 printf()。

main.cpp                                                                                                                                                导入到 Mbed IDE

#include "mbed.h"

Semaphore two_slots(2);
Thread t2;
Thread t3;
    
void test_thread(void const *name) {
    while (true) {
        two_slots.wait();
        printf("%s\n\r", (const char*)name);
        wait(1);
        two_slots.release();
    }
}

int main (void) {
    t2.start(callback(test_thread, (void *)"Th 2"));
    t3.start(callback(test_thread, (void *)"Th 3"));

    test_thread((void *)"Th 1");
}

你可能感兴趣的:(Mbed,OS)