2014-09-23 32 views
-2

Server.java如何阻止存儲在向量列表有bufferreader和PrintWriter的活動線程在它

public synchronized static void logout(String str) throws IOException{ 

    Enumeration e = v1.elements(); 

    while(e.hasMoreElements()){ 
     Serverthread stm = (Serverthread)e.nextElement(); 
     stm.send(str); 
    } 

    Enumeration ex=names.elements(); 
    int indexOf = 0; 
    while(ex.hasMoreElements()){ 
     String name=(String)ex.nextElement(); 
     String org = str.substring(1); 
     if(name.equals(org)){ 
      indexOf= names.indexOf(name); 
      names.removeElementAt(indexOf); 
      System.out.println("names"+names.size()); 
      break; 
     } 
    } 
    // Serverthread st=(Serverthread)v1.get(indexOf); 

    Serverthread st=(Serverthread)v1.remove(indexOf); 
    st.close(); 
    System.out.println(v1.size()); 
    System.out.println("connection closed.."); 
} 
+0

您的類屬性在哪裏?你的Serverthread實現在哪裏?你想在哪裏打電話開始/停止? – 2014-09-23 16:26:18

回答

0

通常情況下,要做到這一點的辦法是關閉InputStream的線程在等待上。如果線程沒有等待任何事情,停止它的唯一方法是調用Thread.interrupt()並希望線程正在檢查它是否已被中斷

+0

謝謝。它幫助我解決我的問題 – 2014-09-23 17:28:30

相關問題