多任务使用一个数据

如果多个任务要使用一个数据得话,要怎么去解决这个问题呢???

使用互斥方法保护这个数据的读写,互斥方法可以通过信号或者互斥量的方式实现。

好的,谢谢,那是谁创建了信号量,信号量又是由谁去释放的呢?一个全局变量,有任务去改变,有任务去读取后使用,每一次操作是咋实现的呢?

一般对于一个全局变量写的时候要特别注意,多任务情况下有可能发生多个任务都会操作该变量的情况,为了保证每个任务对该变量的操作都能得到预期的结果,一般的操作是每次对该变量写之前获取二进制信号的控制权或者互斥量的控制权,然后再写,写完之后再释放控制权。
因为是二进制信号或者互斥量,一次只能有一个地方能够占有控制权,别的地方只能等控制权被释放后才能去获取控制权。
至于谁创建,你可以在任意一个任务中或者任务初始化的地方创建。

1 个赞

明白了,就是说这个只涉及到多个任务去写,如果是不存在多个任务写,只是去读,就没有冲突的风险嘛