aktualisiert und verwendet, werden Benutzer nicht an die ArrayList angehängt und nur ein Element gedruckt, das von diesem Thread eingefügt wird. Welche Änderungen müssen hier vorgenommen werden?Wie man ein Objekt in main() von einer anderen Thread-Klasse in java
Ich habe versucht, synchronisiert (Benutzer), aber immer noch nicht arbeiten.
/*This is the main Class from which threads are created*/
public class MultiThread {
List<String> users = Collections.synchronizedList(new ArrayList<String>());
public static MyThread[] threads=new MyThread[10];
public static void main(String[] args) throws IOException {
while(true){
for(int i=0;i<10;i++){
if(threads[i]==null){
(threads[i] = new MyThread().start();
break;
}
}
}
}
/*Adding names to Arraylist */
public synchronized void adduser(String user){
users.add(user);
}
/*print Array elements */
public void iter(){
Iterator<String> foreach = users.iterator();
while (foreach.hasNext()) System.out.println(foreach.next());
}
}
class MyThread extends Thread {
private BufferedReader in=null;
public void run(){
MultiThread obj=new MultiThread();
in = new BufferedReader(new InputStreamReader());
System.out.println("Enter you name");
name=in.readLine();
obj.adduser(name);
System.out.println("Current Users are:");
obj.iter();
}
}