我有一個java applet類,它實現了runnable。在這個類的run()方法中,我調用了repaint()。 run方法的內容包含在一個無限循環中。在applet類的init()中,我使用new Thread(this).start()
來啓動第二個線程。我的問題是,如果從run()方法調用repaint()將發出主線程執行paint()的信號,或者paint()將作爲第二個線程的一部分執行。如果前者,那麼第二個線程是否會繼續其循環而不等待(如果可能)執行paint()?從java小程序中的非主線程調用repaint()
0
A
回答
0
技術上,事件調度線程是它自己的線程,從推出小程序(主)線分開。
重繪過程由RepaintManager
調度。簡短的回答基本上是,RepaintManager
將安排在事件調度線程上進行重繪。
是否安全直接從一個單獨的線程中調用repaint
?它會認爲這不是好習慣。
作爲事業的問題,我傾向於寧可謹慎的側面,簡單地確保與UI的所有交互,並不管到美國東部時間同步。節省了大量的第二個猜測,恕我直言
我的理解是,repaint
通常被認爲是線程安全的。這並不意味着它將繼續如此。
相關問題
- 1. repaint()未在Java程序中調用
- 2. Repaint()不在線程中調用
- 3. 從java中的Runnable線程調用主線程
- 4. Java線程,從主
- 5. 主線程中的queue.join()調用對非主線程有什麼作用?
- 6. glfwInit()從非主線程
- 7. 從主程序調用靜態方法的Java程序
- 8. 是否有可能從Java中的工作者線程調用主線程?
- 9. Java線程和小應用程序
- 10. 從Java servlet調用線程
- 11. 從主線程凍結應用程序調用工作線程中的應用程序
- 12. 一個主線程可以調用java中的其他主線程
- 13. 主線程沒有調用堆棧的Java線程轉儲? (jsvc)
- 14. 從Eclipse運行應用程序時未調用repaint()?
- 15. 從工作線程調用主線程回調函數
- 16. 從輔助線程使用主線程的調用方法
- 17. Shell腳本調用運行java程序的非主要方法
- 18. 應用程序中的Java小程序
- 19. Android子線程調用主線程UI
- 20. 如何從Java中的工作線程訪問主線程?
- 21. 如何從非UI線程調用Snackbar.make()?
- 22. 我的程序不會「repaint()」
- 23. 的Python:從主線程或調用線程
- 24. 如何從主線程上的線程調用方法?
- 25. 調用方法瓦特/主線程從次線程的參數
- 26. 從主線程中的子類線程執行回調
- 27. 多線程Java小程序彈跳球
- 28. java中的動畫:paint()和repaint()或線程
- 29. 從java調用sql程序
- 30. 從Cobol調用Java程序
感謝您的回答,但它並沒有真正回答我的問題。 =/ – fvgs 2013-05-01 01:03:22
答案是 - 不依賴於它一直是線程安全的,並作出努力,從美國東部時間(如果可能使用類似'SwingUtilities.invokeLater'內調用'repaint' - 不過這是我的個人感覺學科 – MadProgrammer 2013-05-01 01:09:23