建議122:使用線程異常處理器提升系統(tǒng)可靠性

  我們要編寫一個Socket應用,監(jiān)聽指定端口,實現(xiàn)數據包的接收和發(fā)送邏輯,這在早期系統(tǒng)間進行數據交互是經常使用的,這類接口通常需要考慮兩個問題:一個是避免線程阻塞,保證接收的數據盡快處理;二是:接口的穩(wěn)定性和可靠性問題,數據包很復雜,接口服務的系統(tǒng)也很多,一旦守候線程出現(xiàn)異常就會導致Socket停止,這是非常危險的,那我們有什么辦法避免嗎?

  Java1.5版本以后在Thread類中增加了setUncaughtExceptionHandler方法,實現(xiàn)了線程異常的捕捉和處理。可能大家會有一個疑問:如果Socket應用出現(xiàn)了不可預測的異常是否可以自動重啟呢?其實使用線程異常處理器很容易解決,我們來看一個異常處理器應用實例,代碼如下: 

photoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓

class TcpServer implements Runnable {    // 創(chuàng)建后即運行
    public TcpServer() {
        Thread t = new Thread(this);
        t.setUncaughtExceptionHandler(new TcpServerExceptionHandler());
        t.start();
    }
    @Override    public void run() {        for (int i = 0; i < 3; i++) {            try {
                Thread.sleep(1000);
                System.out.println("系統(tǒng)正常運行:&quo
        
		

網友評論