我正在尋找一種方式來如何以編程方式識別無響應(不是殭屍)進程。我發現一些信息來檢查TH_STATE_UNINTERRUPTIBLE狀態,但有一些討論認爲這不是正確的方法。有任何想法嗎?如何以編程方式識別沒有響應的進程
3
A
回答
1
我假設你的意思是一個旋轉輪應用程序掛起?有很多方法可以凍結。具體原因很重要。如果它是一個可可應用程序,你可以嘗試發送你的主線程/窗口事件...或腳本的自旋控制。
1
隨機答案......我不是一個程序員,但我碰到可能感興趣的東西絆倒了,而通過的東西,在提出不同的工作......
sched_prim.c(調度原語)in relatively old xnu-124.7包括:
#define MAX_STUCK_THREADS 128
/*
* do_thread_scan: scan for stuck threads. A thread is stuck if
* it is runnable but its priority is so low that it has not
* run for several seconds. Its priority should be higher, but
* won't be until it runs and calls update_priority. The scanner
* finds these threads and does the updates.
*
* Scanner runs in two passes. Pass one squirrels likely
* thread ids away in an array (takes out references for them).
* Pass two does the priority updates. This is necessary because
* the run queue lock is required for the candidate scan, but
* cannot be held during updates [set_pri will deadlock].
*
* Array length should be enough so that restart isn't necessary,
* but restart logic is included. Does not scan processor runqs.
*
*/
thread_t stuck_threads[MAX_STUCK_THREADS];
int stuck_count = 0;
/*
* do_runq_scan is the guts of pass 1. It scans a runq for
* stuck threads. A boolean is returned indicating whether
* a retry is needed.
*/
- 是的,關於卡住的線程,想不到?
還是從關於進程的問題太過分嗎?
一目瞭然,代碼在sched_prim.c in xnu-1699.26.8源的Mac OS X 10.7.4沒有類似的塊。
相關問題
- 1. 以編程方式識別CMS的URL
- 2. 以編程方式識別PDF類型
- 3. 如何識別應用程序進入後臺的方式?
- 4. 如何以編程方式識別文件的字符集?
- 5. 如何以編程方式設置應用程序池標識
- 6. 如何以編程方式識別ARM板
- 7. 如何以編程方式識別JAVACC解析器不成功?
- 8. 如何以編程方式設置SAPI識別器
- 9. 如何使用iphone以編程方式識別外部聲音
- 10. 如何以編程方式識別色情圖片?
- 11. JSF以編程方式呈現響應
- 12. 如何以編程方式與應用程序進行交互
- 13. 如何以編程方式識別存儲過程的依賴關係?
- 14. 如何以編程方式識別GDB中打印的線程ID
- 15. iPhone - 如何以編程方式識別所有可用的wifi網絡?
- 16. 如何以編程方式響應Windows 8中的快照Metro
- 17. 如何以編程方式獲取Windows進程的線程數?
- 18. 如何以編程方式識別C#方法的引用數量
- 19. 如何以編程方式(!)驗證soap請求/響應與wsdl?
- 20. 如何以編程方式響應各種Excel圖表變化?
- 21. 如何以編程方式從IE獲取響應信息?
- 22. 如何編程方式登錄用戶,以響應
- 23. 如何以編程方式跟蹤響應持續時間?
- 24. 以編程方式滾動對UIWebView沒有影響
- 25. 以無編程方式拒絕呼叫沒有響鈴
- 26. 有沒有辦法以編程方式進入IntelliJ調試器?
- 27. 有沒有辦法以編程方式進入touchmode?
- 28. UILabel沒有以編程方式更新
- 29. UISplitViewController以編程方式沒有nib/xib
- 30. 如何編程,以阻止Windows「沒有響應」對話框
您好, 感謝您的回覆。不幸的是,我試圖監控的過程不是我的應用程序,而是一個商業化的Java應用程序。它有時會佔用整個CPU並停止接受連接。我的想法是監視它,當它停止響應重新啓動它。 – BobC 2010-03-02 19:57:56
在這種情況下,您是否可以安排後臺進程來打開連接並「ping」服務器?可能還會啓動帶有ulimit的Java應用程序,以便它在儲存時不會使CPU飽和。 – pestilence669 2010-03-03 00:30:25