1
我想在搶先線程調度環境中編寫一個並行程序,我可以使用互斥鎖(總是初始化爲未佔用的二進制互斥鎖),等待指令以及線程合作指令(屈服於線程中的另一個任務)到同步我的線程,但沒有任何信號機制可用(實際上,我正在爲我的程序編寫樂高Mindstorm的編程語言NXC)。如何在NXC中控制線程的執行順序?
有沒有辦法寫有兩個線程一個和乙程序和生成的執行順序像(A B A B A B ...)? [它就像有一個線程包含一個循環調用兩個函數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);
}
}
您可以使用'priority'語句(或者它是一個編譯器指令?)來幫助確定每個進程的優先級。您可以使用「主線程」和一些互斥來控制執行哪些線程。 –
另外,請嘗試在Mindboards論壇上提問。 –