2014-09-23 1 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? Где вы хотите вызвать старт/стоп? –

ответ

0

Как правило, способ сделать это, чтобы закрыть InputStream, что тема ждет дальше. Если Thread ни на что не ждет, единственный способ остановить его - вызвать Thread.interrupt() и надеяться, что ваш Thread проверяет, прервано ли оно.

+0

Спасибо. Это помогает мне решить мою проблему –