導航:首頁 > 編程語言 > java多線程監聽

java多線程監聽

發布時間:2022-04-27 09:37:00

A. java自定義事件,線程a如何每一秒鍾觸發一個事件,然後另一個線程b監聽之,並作出反應

線程a是作為事件源,那麼線程a這個類就必須提供一個可以增加監聽器的方法,就像GUI編程中的addActionListener這個樣的方法。線程a這個類裡面是有一個專門存放監聽器的一個容器,例如是list。然後你 增加監聽器的方法就是把監聽器放進這個容器裡面。你用一個監聽器去監聽一個事件的發生,就可以在線程a這個類中,寫一個產生事件的一段代碼,然後每當產生一個事件之後,去遍歷list,去調用監聽器的對於這個事件的處理方法,這樣子就可以了。這應該就是java中的事件模式。

B. java如何監控線程是否在運行

判斷是否在運行用isAlive方法哈。。

給你寫了個例子。。不知是不是你想要的。。

public class Thread100 {

/**
* @param args
*/
public static ThreadA ta = new ThreadA();
public static ThreadB tb = new ThreadB();
public static void main(String[] args) {
ta.start();
tb.start();
}

}
class ThreadA extends Thread {
@Override
public void run() {
int i = 0;
while(i < 100) {
if(Thread100.tb.isAlive()) {
System.out.println("B is alive");
}
System.out.println(i);
i++;
}
}
}
class ThreadB extends Thread {
@Override
public void run() {
int i = 0;
while(i < 100) {
if(Thread100.ta.isAlive()) {
System.out.println("A is alive");
}
System.out.println(i);
i++;
}
}
}

C. java多線程訪問

可以BC
線程同步有個同步鎖,當一個線程進入那個synchronized的方法後,就鎖起了。其他線程進不去

D. java中能否監聽一個線程是否結束 我希望在當前線程結束時寫日誌

線程結束的標志是run()函數執行完畢。如果你要判斷的話 用 線程名.isAlive();

E. java 多線程監聽數據表的改變,怎麼解決同步問題

噢,是這樣的,不是什麼東西都能當做鎖,你不能這樣理解。
synchronized(obj),obj這里是你所在類的MIDlet的一個實例對象。

目的是解決因線程不同步而對數據造成破壞的問題。
假如:在一個類中有一個成員變數a,還有兩個線程,如果線程不同步的話,這兩個線程有可能同時訪問同一個變數a,這樣的話,就會出現問題,最後執的結果a到底是幾呢,所以就要使用線程同步這個辦法了。

使用線程同步後,線程1在訪問a的時候,我加了一把鎖,在這個時候別的線程是不允許訪問a的,等線程1對a有訪問結束後,就會去掉這把鎖,其他的線程再訪問a的時候,又會加鎖,這樣在同一時候,只能有一方訪問a,這樣就不會出現問題,我說這么多,你明白了嗎?希望你能明白,不然我說的算白說了,呵呵!!!!

F. 如何監視Java多線程的狀態

線程池的地方在新增或者刪除線程的時候加一個debug信息。 如果在命令行下面啟動的話用ctrl + break就可以看到當前哪些線程在運行了。。。

G. java中如何監聽一個線程的結束

你可以把thread的執行的代碼 全部TRY CATCH起來啊 如果報異常了 就發送請求給SERVLET啊 如果正常結束完成 你也可以坐響應的處理啊 。
Runtime.getRuntime().addShutdownHook(Thread);當程序出現問題時會先啟動Thread這個線程,
幫你解決記錄或或者其他線程的關閉。

H. java中的事件監聽是怎樣實現隨時監聽的,是通過線程嗎

java中的事件監聽不是通過線程實現的,它是通過一種注冊--通知機制實現的。在java的設計模式中,有一種模式叫:觀察者模式,和這個類似。

I. 求java寫的多線程socket埠監聽伺服器端程序,要代界面的.

業務需要這么復雜嗎???如果你要實現伺服器和客戶端都可以向對方發送消息,而不等待對方應答,只需要把InputStream和OutputStream分別放在兩個不同線程里就行了,即是說把接收流與發送流分別用一個線程監聽處理。如果要實現不分客戶端伺服器的話,用UDP通信即可
補充回答:如果不涉及到MIME,只是收發簡單文本郵件。就會比較簡單。因為就像你說的,smtp和pop3協議就是文本格式的。你用Socket建立連接後,就像讀文件一樣,一行一行的讀數據,然後按照協議分析數據格式。例如如果開始時USER那麼後面可能跟的就是用戶等。
就是一個字元串解析和匹配的過程。網上好像有這類代碼,自己找一個學習一下。我以前用C在68k上作過,不是很難。不過代碼已經沒有了。

你的是郵件客戶端,功能類似於outlook,foxmail等,如果你能上網,就不需要郵件伺服器,直接用自己的郵件賬號來測試,例如如果你有一個sina的郵件賬戶,就可以從sina伺服器收發郵件。
不過為了測試方便,還是上網去收一個郵件伺服器把。例如foxmail server等。網上有教程,可以配置好的。

對於編程,既然要求用socket編寫,那麼就要熟悉java的socket編程,這部分倒是很簡單。可能還需要看看多線程部分。

另外,你需要學習一下, smtp和pop3這兩個網路協議的內容,因為你需要解析這兩個協議。如果需要收發代附件的,還需要看mime的內容,不過估計不需要。

其實java有自己的類庫javamail,可以實現手法郵件,功能很強大。不過既然要求必須用socket,那就不能這個了。

說的太羅嗦了。總結一下:
1)配置郵件伺服器,搭建測試環境
2)熟悉java的socket編程、 Swing編程(編寫界面)、多線程(選用)
3)熟悉smtp和pop3的內容(內容很多,了解基本的就可以)
網上應該有類似代碼,可以用來參考。

J. java 多線程問題 真的提高了效率嗎

你鑽了牛角尖了。不要從cpu耗時上看,並行一般是為了任務處理。並發是為了資源共享和資源的充分利用。二者可比性不大。

  1. 你所說的cpu一般是指,分時系統中的cpu,比如linux,其中一個用戶A的一個線程要30個小時完成,另外一個用戶B的線程需要1000個小時。而且其中需要用戶不斷響應,如果沒有並發,B用戶先開始,A用戶需要等待1030小時。如果使用並發,A用戶可能四五十個小時就搞定了。如果A和B都比較有money,一人買一台,沒有這個問題的。這就是並行。資源充足怎麼著都行,資源不足只能找折中方案了。

  2. 如果你覺得這是進程的概念,java里一樣的。你做過web開發吧。你肯定不想每個請求都分一個伺服器吧。開發一個網頁,一台電腦同時有上千個人訪問你的tomcat,一般不會有問題。瀏覽也順暢。這就是並發的作用。這種情況如果使用單線程。一千個人有999個人等著看你的網頁,而第一個人操作的時候cpu大部分時間是空閑的。怎麼利用起來就成了個問題。這也叫效率。

  3. 如果確實必須要考慮問題處理的效率問題。你訪問資料庫的時候用過線程池嗎?是不是能縮短訪問資料庫所耗費的時間。所以效率高不高不能只看cpu用了多少時間。你可以再考慮考慮,不用多線程,你怎麼設計一個單線程程序,同時監聽鍵盤和麥克風的信息錄入?

  4. 其實計算機底層是有天然的非同步特性的。這個東西就是中斷。有些耗時的io操作,什麼時候處理完是可以不用管的。剩下的無關線程就可以自由自在的進行了。這樣效率是不是也高了。

  5. 單cpu一般也是多核的。

閱讀全文

與java多線程監聽相關的資料

熱點內容
壓縮機異音影響製冷嗎 瀏覽:711
德斯蘭壓縮機 瀏覽:490
程序員太極拳視頻 瀏覽:531
網上購買加密鎖 瀏覽:825
安卓為什麼軟體要隱私 瀏覽:83
虛擬主機管理源碼 瀏覽:811
java圖形圖像 瀏覽:230
單片機輸出口電平 瀏覽:486
java配置資料庫連接 瀏覽:479
java多態的體現 瀏覽:554
java的split分隔符 瀏覽:128
跪著敲代碼的程序員 瀏覽:238
web和php有什麼區別 瀏覽:120
加密的電梯卡怎麼復制蘋果手機 瀏覽:218
warez壓縮 瀏覽:137
黑馬程序員培訓機構官網天津 瀏覽:904
mainjavasrc 瀏覽:58
如何買伺服器挖礦 瀏覽:292
php批量上傳文件夾 瀏覽:560
安卓固件怎麼更新 瀏覽:169