Sample code for Thread implementation with with synchronized method
import java.util.ArrayList; import java.util.List; public class ThreadTest { public static List registryList= new ArrayList(); public static void main(String args[]){ RegistryBean obj1= new RegistryBean(1,false); RegistryBean obj2= new RegistryBean(2,false); RegistryBean obj3= new RegistryBean(3,false); RegistryBean obj4= new RegistryBean(4,false); RegistryBean obj5= new RegistryBean(5,false); registryList.add(obj1); registryList.add(obj2); registryList.add(obj3); registryList.add(obj4); registryList.add(obj5); SignupProcessThread thread1=new SignupProcessThread(); SignupProcessThread thread2=new SignupProcessThread(); SignupProcessThread thread3=new SignupProcessThread(); SignupProcessThread thread4=new SignupProcessThread(); SignupProcessThread thread5=new SignupProcessThread(); thread1.start(); thread2.start(); thread3.start(); thread4.start(); thread5.start(); } public static synchronized RegistryBean getRegistryRequest(String name){ for(int i=0;i<registryList.size();i++){ if(!((RegistryBean)registryList.get(i)).isStatus()){ System.out.println(name+" : thread name Got the object " + "with reg num : "+((RegistryBean)registryList.get(i)).getRegNo()+" " + "and Status : "+((RegistryBean)registryList.get(i)).isStatus()); for(int j=0;j<50000;j++){} ((RegistryBean)registryList.get(i)).setStatus(true); return (RegistryBean)registryList.get(i); } } return null; } }