types of synchronization code example

Example 1: synchronization program in java

class First
{
  synchronized public void display(String msg)
  {
    System.out.print ("["+msg);
    try
    {
      Thread.sleep(1000);
    }
    catch(InterruptedException e)
    {
      e.printStackTrace();
    }
    System.out.println ("]");
  }
}

class Second extends Thread
{
  String msg;
  First fobj;
  Second (First fp,String str)
  {
    fobj = fp;
    msg = str;
    start();
  }
  public void run()
  {
    fobj.display(msg);
  }
}

public class MyThread
{
  public static void main (String[] args)
  {
    First fnew = new First();
    Second ss = new Second(fnew, "welcome");
    Second ss1= new Second(fnew,"new");
    Second ss2 = new Second(fnew, "programmer");
  }
}

Example 2: handling synchronization

- Synchronization is making sure our driver
  and browser are on the same page.
- Since selenium browser driver is a lot
  faster compared to the browsers , we use
  different types of waits to make sure
  selenium is synchronized with browsers.

There are 3 wait types to handle synchronization
issue from selenium;

1- Implicit Wait
Everytime we are trying to locate a webelement
is triggered. By default wait time is 0 second.
If we set the time to 10 seconds, and our driver
not able to find element, it will count for
given time. If element findst the webelement
it doesn't throw an exception.

2- Explicit Wait & 3- Fluent Wait
Both explicit and fluent wait is waiting for
explicit condition to happen
Like:
-elementIsDisplayed
-titleIs()
-visibilityOf
-elementToBeClickable
I use explicit wait in my framework

**THREAD.SLEEP
There is also thread.sleep comes from java library.
I always avoid to use it since it makes my
automation framework slower and heavier.
Thread.sleep basically holds the whole execution
for given time without any condition

Tags:

Misc Example