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;
 }
}
 
 
