请大虾指导。 是不是多个线程只需要设置一个信号量(led2_sem),用这个信号量来确定只执行当前
while (1)
{
rt_sem_take(&led2_sem,RT_WAITING_FOREVER);
Led_Part_ON(1);
rt_kprintf("led2 off\r\n");
rt_sem_release(&led2_sem);
rt_thread_delay(10); //还有此处是不是必须有系统休眠,其他的进程才会得到运行??
}
有没有必要将每个线程都设置一个信号量 如(相对应三个线程)
rt_sem_init(&led1_sem,"led1_sem",1,RT_IPC_FLAG_FIFO);
rt_sem_init(&led2_sem,"led2_sem",1,RT_IPC_FLAG_FIFO);
rt_sem_init(&led_turn_sem,"led_turn_sem",1,RT_IPC_FLAG_FIFO);
对使用信号量的方式理解是不是出现问题,请指教。
|