[問題] 多緒與Sleep.....

看板C_and_CPP (C/C++)作者 (找玩伴)時間16年前 (2010/01/07 16:18), 編輯推噓2(207)
留言9則, 4人參與, 最新討論串1/1
最近在 Ubuntu 上用 gcc 編譯器寫一個貪食蛇的小程式 已經快完成了 不過美中不足的地方是 蛇在跑的時間 delay 我目前是用 for loop 讓他在 24,80 的位置印空白 但我覺得這是很愚蠢的作法 (我相信大家也這麼覺得) 嘗試用 Sleep 的涵式去做 但一執行就睡死了 簡單說明一下我的程式架構: main() 一開始 create 另一個 thread 開始讓蛇跑 接著用 while(1) 去 get 並判斷一個全域變數變數 c (宣告為全域變數是因為另一個 thread 會根據 c 的值去做些事) while loop 內就是 switch case 去辨別 c 並做一些事 直到判別到 "q" 後 break; join thread 後結束程式 runner()//讓蛇跑的 thread 一樣有 while(1) 判別 c 及 d 兩變數 若 c 為 "q" 則 thread exit (d 變數亦是判別c後改變 為辨別下一個 printf 位置使用) 接著 printf 出下一個位置 蛇最後的位置 printf(" "); 消掉 delay再這!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 剛爬過文了 但似乎沒有看到解決辦法 可否煩請高手指導一下 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.34.204

01/07 16:20, , 1F
忽然想到如果建一個 function 內去 sleep 然後 runner
01/07 16:20, 1F

01/07 16:20, , 2F
再去 call 這個 function 不知道行不行
01/07 16:20, 2F

01/07 17:30, , 3F
用 nanosleep 來暫停更短的時間即可
01/07 17:30, 3F

01/07 21:10, , 4F
有沒有 Wakeup() API 可以把程式叫醒? ︿_︿|||
01/07 21:10, 4F

01/07 22:47, , 5F
nanosleep 試過了 一樣無法 wakeup 是??? sleep...
01/07 22:47, 5F

01/07 22:47, , 6F
sleep 不會自己醒???
01/07 22:47, 6F

01/08 10:32, , 7F
你怎樣用 sleep? sleep 應該要提供時間, 時間到就醒了
01/08 10:32, 7F

01/08 13:33, , 8F
我的 sleep 用法是 sleep(1); 這樣不是停一秒嗎??
01/08 13:33, 8F

01/08 15:19, , 9F
nanosleep你怎麼用的?你的問題顯然是因為sleep會睡太久
01/08 15:19, 9F
文章代碼(AID): #1BHPYz48 (C_and_CPP)
文章代碼(AID): #1BHPYz48 (C_and_CPP)