我想在抢占式线程调度环境中编写一个并行程序,我可以使用互斥锁(二进制互斥锁,始终初始化为未使用)、等待指令以及线程协作指令(屈服于线程中的另一个任务)来同步我的线程,但没有任何可用的信号量机制(事实上,我正在为 Lego Mindstorm 用NXC编程语言编写程序)。
有没有办法用两个线程A和B编写程序并生成像 (ABABAB ...) 这样的执行顺序?[这就像一个线程包含一个调用两个函数 A() 和 B() 的循环 - 但在这里,它是多线程方式]
如果我有信号量,我想我会这样做:
semaphore SemA = 1, SemB=0;
//in A
{
while(true)
{
down(SemA);
//Do the things
up(SemB);
}
}
//in B
{
while(true)
{
down(SemB);
//Do the things
up(SemA);
}
}