Bei gleichzeitiger Änderung Ausnahme [geschlossen]
Könnten Sie bitte sagen, ob es in irgendeiner Weise eine Ausnahme für gleichzeitige Änderungen in einer Umgebung mit nur einem Thread geben könnte, und ob die folgende Anwendung, die ich veröffentliche, aus zwei Threads besteht? beraten
package concurrentmodificationError;
import java.util.*;
class ItrDemo
{
public static void main(String arg[])
{
Vector v=new Vector();
v.addElement("Amit");
v.add("Rahul");
v.add(1,"Nitin");
v.addElement("Ankit");
System.out.println("There are "+v.size()+"elements in the vector ");
final Iterator itr=v.iterator();
Thread th=new Thread() {
public void run()
{
System.out.println("New Thread started,traversing elements of vector...");
System.out.println("Contents of vector are...");
while(itr.hasNext())
{
System.out.println(itr.next());
try
{
Thread.sleep(2000);
}
catch(Exception e1)
{
}
}
}
};// end of annomyous class
System.out.println("Suspending main thread and starting a new thread for traversing the contents of vector...");
th.start();
try
{
Thread.sleep(1000);
}
catch(Exception e1)
{
}
System.out.println("main thread resumed,modifying vector...");
v.remove("Ankit");
v.add("Puneet");
v.add("Raman");
System.out.println("Vector Modified , Ankit removed and Puneet & Raman added.");
}
}
Ja, ich habe gehört, dass dieser Fehler in der Single-Thread-Umgebung auftreten kann.
System.out.println("Content of list are : ");
ListIterator itr1=list.listIterator();
while(itr1.hasNext())
{
list.add(new Emp("Anand","Manager",56000)); //
Emp e=(Emp)itr1.next();
e.display();
}
Bitte teilen Sie uns mit, wie Sie dieses Problem lösen können, damit dieser Fehler nicht auftritt