[問題] 一個ThreadX的問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
c, ThreadX
問題(Question):
我在ThreadX這平台上建立了兩個thread,
其中一個thread,命名為thread#A,它跑的code如下:
threadA_entry()
{
while(1)
{;}
}
另一個thread,命名為threadB,它跑的code如下:
threadB_entry()
{
while(1)
{
pintf("\nI am threadB")
}
}
結果程式跑起來,我發現console不會顯示"I am threadB"的訊息,
看起來似乎是因為threadA卡在while loop裡面了.
但是如果我把threadA的內容改成如下:
threadA_entry()
{
while(1)
{
pintf("\nI am threadA")
}
}
結果程式跑起來,我發現console會先顯示幾行"I am threadA"的訊息,
然後再顯示幾行"I am threadB"的訊息.
然後再繼續顯示幾行"I am threadA"的訊息.
然後再顯示幾行"I am threadB"的訊息.
不斷的輪流顯示這兩種訊息...
看得出來threadA跟threadB他們輪流執行.
我的問題是:
為什麼threadA沒有加printf訊息時,
它就會一直佔用執行權而不讓給threadB,
但是只不過加一個printf訊息,就會願意跟threadB共享執行權力呢?
為什麼多加一個printf訊息,結果就差這麼多呢?
謝謝...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.38.13
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1411603202.A.5D6.html
→
09/25 08:22, , 1F
09/25 08:22, 1F
→
09/25 09:01, , 2F
09/25 09:01, 2F
推
09/25 09:06, , 3F
09/25 09:06, 3F
推
09/25 12:23, , 4F
09/25 12:23, 4F
推
09/26 00:13, , 5F
09/26 00:13, 5F
推
09/26 11:40, , 6F
09/26 11:40, 6F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章