Hi,

I am having a question about the SynchronizedExample1 lab.  If I am
not using the static method to do the print, instead, I have a
PrintTwoString print method(), the output does not look correct even
this print method is synchronized.  Can you help me to understand why
this is the case?  If I use the static method, then this code is
synchronized, and the output looks correct.  Thanks!

The following is the output:
A C E B
F
D

Code:
public class SyncThreadExample {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                SyncThreadExampleHelper sth1 = new SyncThreadExampleHelper("A",
"B");
                SyncThreadExampleHelper sth2 = new SyncThreadExampleHelper("C",
"D");
                SyncThreadExampleHelper sth3 = new SyncThreadExampleHelper("E",
"F");

                //sth1.print();
        }

}


public class SyncThreadExampleHelper extends Thread {

        private String firstName;
        private String lastName;

        public SyncThreadExampleHelper(String firstName, String lastName) {
                super();
                this.firstName = firstName;
                this.lastName = lastName;
            start();
        }

        public void run()
        {
                //PTW.print(firstName, lastName);
                PrintTwoString ptws = new PrintTwoString(firstName, lastName);
                ptws.print();
        }
}



public class PrintTwoString {

  PrintTwoString(String a, String b)
  {
          this.a = a;
          this.b = b;

  }
   synchronized void print()
   {
           System.out.print(a + " " );
           try
           {
                   Thread.sleep((long)(Math.random() * 1000));
           }
           catch(InterruptedException ie)
           {

           }
           System.out.println(b);
   }

   private String a;
   private String b;
}

Lawrence Louie

-- 
To post to this group, send email to javaprogrammingwithpassion@googlegroups.com
To unsubscribe from this group, send email to 
javaprogrammingwithpassion+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaprogrammingwithpassion?hl=en

Reply via email to