成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SwingWorker單線程規則

開發 后端
本文介紹SwingWorker單線程規則,以及許多程序都不需要后臺線程,后臺線程在執行費時的操作時仍然是很有用的,它能提高程序的性能觀感。

SwingAPI的設計目標是強大、靈活和易用。非凡地,我們希望能讓程序員們方便地建立新的Swing組件,不論是從頭開始還是通過擴展我們所提供的一些組件。出于這個目的,我們不要求Swing組件支持多線程訪問。相反,我們向組件發送請求并在單一線程中執行請求。本文討論線程和Swing組件。目的不僅是為了幫助你以線程安全的方式使用SwingAPI,而且解釋了我們為什么會選擇現在這樣的線程方案。本文包括以下內容:

單線程規則:SwingWorker單線程在同一時刻僅能被一個線程所訪問。一般來說,這個線程是事件派發線程。規則的例外:有些操作保證是線程安全的。事件分發:假如你需要從事件處理或繪制代碼以外的地方訪問UI,那么你可以使用SwingUtilities 類的invokeLater要求在事件派發線程中執行某些代碼。這個方法會立即返回,不會等待代碼執行完畢。invokeAndWait行為與 invokeLater類似,除了這個方法會等待代碼執行完畢。一般地,你可以用invokeLater來代替這個方法。下面是一些使用這幾個API的例子。請同時參閱《TheJavaTutorial》中的“BINGOexample”,尤其是以下幾個類:CardWindow、ControlPane、Player和OverallStatusPane。

使用invokeLater方法你可以從任何線程調用invokeLater方法以請求事件派發線程運行特定代碼。你必須把要運行的代碼放到一個 Runnable對象的run方法中,并將此Runnable對象設為invokeLater的參數。invokeLater方法會立即返回,不等待事件派發線程執行指定代碼。這是一個使用invokeLater方法的例子:

  1. RunnabledoWorkRunnable=newRunnable 

SwingUtilities.invokeLater; 使用invokeAndWait方法invokeAndWait方法和invokeLater方法很相似,除了invokeAndWait方法會等事件派發線程執行了指定代碼才返回。在可能的情況下,你應該盡量用invokeLater來代替invokeAndWait。假如你真的要使用 invokeAndWait,請確保調用invokeAndWait的線程不會在調用期間持有任何其他線程可能需要的鎖。

這是一個使用invokeAndWait的例子:

  1. voidshowHelloThereDialogthrowsException  
  2. }  
  3. SwingUtilities.invokeAndWait;  

類似地,假設一個線程需要對GUI的狀態進行存取,比如文本域的內容,它的代碼可能類似這樣:

  1. voidprintTextField  
  2. throwsException  
  3. }  
  4. SwingUtilities.invokeAndWait  
  5. System.out.println  

假如你能避免使用線程,最好這樣做。線程可能難于使用,并使得程序的debug更困難。一般來說,對于嚴格意義下的GUI工作,線程是不必要的,比如對組件屬性的更新。不管怎么說,有時候線程是必要的。下列情況是使用線程的一些典型情況:執行一項費時的任務而不必將事件派發線程鎖定。例子包括執行大量計算的情況,會導致大量類被裝載的情況,和為網絡或磁盤I/O而阻塞的情況。重復地執行一項操作,通常在兩次操作間間隔一個預定的時間周期。要等待來自客戶的消息。你可以使用兩個類來幫助你實現線程:SwingWorker:創建一個后臺線程來執行費時的操作。Timer:創建一個線程來執行或多次執行某些代碼,在兩次執行間間隔用戶定義的延遲。使用SwingWorker單線程在SwingWorker.java中實現,這個類并不包含在Java的任何發行版中,所以你必須單獨下載它。SwingWorker單線程做了所有實現一個后臺線程所需的骯臟工作。雖然許多程序都不需要后臺線程,后臺線程在執行費時的操作時仍然是很有用的,它能提高程序的性能觀感。

【編輯推薦】

  1. 動態語言是否將會挽救Swing
  2. 用TableModel框架簡化Swing開發
  3. Swing模型過濾技術詳解
  4. Java Swing開發的一些熱點
  5. 使用Swing動態界面設計技術透析
責任編輯:佚名 來源: 中國IT實驗室
相關推薦

2025-06-17 00:22:00

2020-11-09 09:33:37

多線程

2010-08-30 08:55:56

JavaScript引

2022-01-04 11:11:32

Redis單線程Reactor

2009-04-30 09:10:42

JavaSwing線程安全

2010-01-28 16:45:44

Android單線程模

2025-04-24 08:15:00

Redis單線程線程

2024-02-26 00:00:00

JavaScript單線程高效

2017-03-06 14:08:38

JavaScript單線程setTimeout

2019-11-25 10:13:52

Redis單線程I

2024-09-27 11:51:33

Redis多線程單線程

2009-07-17 17:41:41

SwingWorker

2012-02-15 10:26:40

JavaJava Socket

2019-06-17 14:20:51

Redis數據庫Java

2023-08-17 14:12:17

2023-10-15 12:23:10

單線程Redis

2021-01-10 11:21:33

JavaScript語言開發

2020-10-30 16:20:38

Redis單線程高并發

2020-06-11 09:35:39

Redis單線程Java

2021-06-11 11:28:22

多線程fork單線程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 毛片毛片毛片毛片毛片 | 超碰3 | 97精品视频在线观看 | 亚洲色片网站 | 伊人久久大香线 | 亚洲精品二区 | 成人区精品 | av网站免费观看 | 亚洲国产成人在线观看 | 天天拍天天操 | 97色在线视频 | 精品一级 | 国产亚洲欧美日韩精品一区二区三区 | 欧美精品乱码久久久久久按摩 | 最新免费黄色网址 | 特一级毛片 | 99re6在线 | 成人久久视频 | 欧美在线a | 国产日产久久高清欧美一区 | 欧美激情视频一区二区三区免费 | 日韩国产免费观看 | 久久国产精品99久久久久 | 91亚洲国产成人久久精品网站 | 国产激情片在线观看 | 欧洲一级黄 | 九九久久免费视频 | 91看片官网 | 九九热这里只有精品6 | 欧美在线激情 | 精品日韩 | 91视频91| 成人h视频在线 | 伦理二区 | 国产精品久久久 | 伊人网综合| 日韩欧美一区二区三区免费观看 | 国产精品一区在线观看 | 91中文在线观看 | 天天射色综合 | 久草成人网 |