背景条件:
在RTOS或者linux中,任务是以线程的方式运行。
假设环境:
假设存在对变量读和写的两个任务,两个线程优先级相同。
相同优先级线程运行顺序无法控制
因为读写线程的优先级相同,所以存在写数据的线程未运行,为阻塞状态,尚未进行数据写入便先运行读数据的进程。
导致新的数据未写入便已经被发送。
正常的话需要先进行写过程,然后再由读进程读出数据进行使用,这里便无法控制进行的顺序。
但是在裸机程序中就不需要,因为大循环中,非中断条件下肯定是按照读写的程序顺序进行的。
所以在RTOS中可见,无法通过线程调度器来控制线程的运行顺序,(优先级相同)
所以这里需要使用互斥机制!