TI中文支持网
TI专业的中文技术问题搜集分享网站

1310有没有线程能够锁定线程的命令

1310有没有线程能够锁定线程的命令,,就是我在解除锁定之前,一直处于当前线程,不会进入其他线程呀。

Viki Shi:

可以了解一下原子操作

liu shr:

回复 Viki Shi:

就是1310没有现成的函数或者其他来实现是么?

还有先问下,我在A线程中释放了B线程(优先级高于A)阻塞信号,有时候会进不到B线程中,这有可能是什么原因呢。

感谢。

Viki Shi:

回复 liu shr:

是不是被其他线程抢占了?

liu shr:

回复 Viki Shi:

现象是这样的,B线程中如果要执行的语句简单就没有问题,每次都能进,如果B线程中调用了比如SPI或者UART接收,其他部分都不改变,就有时候进去不。。。我也比较纳闷

Viki Shi:

回复 liu shr:

你程序里应该不止这两个线程吧?要考虑其他线程可能是在就绪状态,虽然释放了阻塞信号,但并不一定就能立即得到CPU

liu shr:

回复 Viki Shi:

现在的现象是A在继续运行,反而B有时候进不去。B的优先级是高于A的,而且是高于我程序中其他线程的,也可能 出现这种现象?那么B线程中如果语句简单每次都能进这是什么原因。

灰小子:

回复 liu shr:

看看B中使用的资源是不是被A或者其他线程占用了?

Viki Shi:

回复 liu shr:

这么描述的话,我觉得B线程进去了,只是你观察的位置可能不对。进入B线程就立即打印信息或者在最开头设置断点观察是否有进入

YiKai Chen:

試試用critical section

liu shr:

回复 灰小子:

B中会判断A中的几个变量,但B中资源应该没有被占用。现在发现B中的SPI传输如果使用BLOCK模式就会有部分进不去,如果使用CALLBACK模式B线程就都能进去。。。

赞(0)
未经允许不得转载:TI中文支持网 » 1310有没有线程能够锁定线程的命令
分享到: 更多 (0)