自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

介紹SwingWorker任務(wù)

開發(fā) 后端
本文介紹SwingWorker任務(wù),RemoteTable用一個QueuedExecutor調(diào)度它的SwingWorker任務(wù),QueuedExecutor在單個線程中順序執(zhí)行所有的任務(wù)。

SwingWorker任務(wù)隊列

RemoteTable用一個QueuedExecutor調(diào)度它的SwingWorker任務(wù),QueuedExecutor在單個線程中順序執(zhí)行所有的任務(wù)。(QueuedExecutor是DougLea的util.concurrent包的一部分,請參見后面的“參考資料”部分。)遠(yuǎn)程模型用RMI回調(diào)操作通知它的監(jiān)聽器。
為了支持可視的反饋,RemoteTable發(fā)送Task事件給注冊的Task監(jiān)聽器。在任務(wù)進(jìn)入調(diào)度時,監(jiān)聽器的taskStarted()被調(diào)用,taskEnded()在任務(wù)完成時被調(diào)用。客戶端演示程序使用這些事件來啟動或停止一個小動畫并更新狀態(tài)來。

執(zhí)行次序

表示的是單元格的更新過程。執(zhí)行過程的開始和結(jié)束都位于左邊的事件派發(fā)線程。SwingWorker任務(wù)則在右邊的executor的線程中執(zhí)行。Worker的finished()方法的執(zhí)行過程沒有表示出來。

RemoteTable執(zhí)行順序圖

SwingWorker任務(wù)簡化

簡單起見,遠(yuǎn)程模型并沒有對互相沖突的編輯提供保護(hù)。所以在同一時刻僅能有一個編輯器在運(yùn)行。(并發(fā)編輯可以用添加請求ID(requestIDs)的方法來實現(xiàn)。)
所作的另一項簡化決定是客戶端和服務(wù)器必須預(yù)先對表的列結(jié)構(gòu)協(xié)商好。換句話說,服務(wù)器性客戶端提供行數(shù)據(jù),而客戶端必須已經(jīng)知道他們要處理的是什么表。演示用的客戶端用DefaultModelTemplate來預(yù)先定義了各列的名稱和類,來確定哪個單元格可以被編輯。(在演示程序中,前兩列是不可編輯的。)
本節(jié)的余下部分闡述了類結(jié)構(gòu)和實現(xiàn)。如果不想了解這個演示程序中所用的修訂版的SwingWorker,你可以跳過去?!跋螺d”一節(jié)解釋了如何下載并運(yùn)行這個演示程序。

RemoteTable各類

SwingWorker任務(wù)實現(xiàn)

遠(yuǎn)程模型實現(xiàn)了RemoteTableModel接口,這個接口和AbstractTableModel很相似,除了它的所有方法都會拋出異常。要啟動一個客戶端,遠(yuǎn)程表模型發(fā)送一個完全更新事件給客戶端已注冊的的監(jiān)聽器。
RemoteTableModelAdapter配接任意的TableModel到一個RemoteTableModel。演示程序中的表模型取自TheJavaTutorial,但插入了一些延遲來模擬實際情況。遠(yuǎn)程表模型事件包含已更新的單元格的值。
RemoteTable 組件用一個DefaultRemoteTableModelListener來接受來自遠(yuǎn)程模型的回調(diào)。這個監(jiān)聽器會在事件派發(fā)線程中更新本地模型。因為遠(yuǎn)程模型可能要通知插入或刪除某些行,所以監(jiān)聽器要求本地模型支持插入和刪除操作,DefaultTableModel滿足這個要求。

【編輯推薦】

  1. 介紹JavaFX功能與Swing的關(guān)系
  2. 淺談Swing中l(wèi)ookandfeel源代碼
  3. 概述Swing中的Timer對象
  4. 淺析Swing中actionPerformed()方法
  5. 詳解所有的Swing核心組件
責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2009-07-10 09:30:41

SwingWorker

2009-07-17 10:58:12

SwingWorker

2009-07-17 17:34:03

SwingWorker異常處理

2009-07-10 09:05:20

SwingWorker

2009-07-17 17:41:41

SwingWorker

2009-07-17 14:57:41

SwingWorkerSwing程序

2009-08-19 10:13:51

Rake任務(wù)

2022-06-02 10:18:24

函數(shù)計算異步

2016-12-27 19:29:14

Linux命令定時任務(wù)

2010-03-15 17:05:39

Java任務(wù)隊列

2021-06-30 07:19:34

SpringBoot定時任務(wù)

2022-03-28 14:23:26

HarmonyAI算法統(tǒng)一推理接口

2009-04-30 09:10:42

JavaSwing線程安全

2024-02-19 15:04:38

自然語言Pytorch人工智能

2021-07-24 11:15:19

開發(fā)技能代碼

2023-04-06 00:22:19

JavaScrip任務(wù)開發(fā)

2024-06-12 12:36:48

CrontabPython

2020-12-29 08:21:03

JavaScript微任務(wù)宏任務(wù)

2011-03-30 11:04:11

MRTG

2011-01-19 16:40:34

Sylpheed
點贊
收藏

51CTO技術(shù)棧公眾號