RT-Thread线程同步与线程通信如何改写为一个长尾词的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1971个文字,预计阅读时间需要8分钟。
一、线程同步线程同步的应用场景例如一项工作中涉及的两个线程:一个线程从传感器接收数据并将其写入共享内存,另一个线程定期从共享内存中读取数据并发送。
同步示例:一个线程从传感器接收数据并写入共享内存,同时另一个线程周期性地从共享内存读取数据并发送。
一、线程同步-
线程同步的使用场景
例如一项工作中的两个线程:一个线程从传感器中接收数据并且将数据写到共享内存中,同时另一个线程周期性的从共享内存中读取数据并发送去显示,下图描述了两个线程间的数据传递:
-
临界区
多个线程操作 / 访问同一块区域(代码),这块代码就称为临界区,上述例子中的共享内存块就是临界区。线程互斥是指对于临界区资源访问的排它性。当多个线程都要使用临界区资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步。
-
线程同步的作用
简单来说RT-Thread的信号量(semaphore)、互斥量(mutex)、和事件集(event)的作用都是保证共享内存的互斥性。 -
线程之外的临界区使用
调用 rt_enter_critical() 进入临界区,调用 rt_exit_critical() 退出临界区;
调用 rt_hw_interrupt_disable() 进入临界区,调用 rt_hw_interrupt_enable() 退出临界区。
本文共计1971个文字,预计阅读时间需要8分钟。
一、线程同步线程同步的应用场景例如一项工作中涉及的两个线程:一个线程从传感器接收数据并将其写入共享内存,另一个线程定期从共享内存中读取数据并发送。
同步示例:一个线程从传感器接收数据并写入共享内存,同时另一个线程周期性地从共享内存读取数据并发送。
一、线程同步-
线程同步的使用场景
例如一项工作中的两个线程:一个线程从传感器中接收数据并且将数据写到共享内存中,同时另一个线程周期性的从共享内存中读取数据并发送去显示,下图描述了两个线程间的数据传递:
-
临界区
多个线程操作 / 访问同一块区域(代码),这块代码就称为临界区,上述例子中的共享内存块就是临界区。线程互斥是指对于临界区资源访问的排它性。当多个线程都要使用临界区资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放该资源。线程互斥可以看成是一种特殊的线程同步。
-
线程同步的作用
简单来说RT-Thread的信号量(semaphore)、互斥量(mutex)、和事件集(event)的作用都是保证共享内存的互斥性。 -
线程之外的临界区使用
调用 rt_enter_critical() 进入临界区,调用 rt_exit_critical() 退出临界区;
调用 rt_hw_interrupt_disable() 进入临界区,调用 rt_hw_interrupt_enable() 退出临界区。

