THREADS Example 1 public class Simple Thread extends
THREADS
Example -1
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } }
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 “Jamaica” --------sleep run set. Name get. Name :
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 “Jamaica” --------sleep run set. Name get. Name :
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 “Jamaica” --------sleep run set. Name get. Name : 0 Jamaica
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 “Jamaica” --------sleep run set. Name get. Name : 0 Jamaica 401
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 2 ref 1 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : 0 Jamaica 401
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 2 ref 1 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : 0 Jamaica 401
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : 0 Jamaica 401 0 Fiji 492
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : 0 Jamaica 401 0 Fiji 492 1 Jamaica 947
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 4 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164 Fiji 482
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 4 6 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164 Fiji 482 Jamaica 796
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 4 6 5 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164 Fiji 482 Jamaica 796 Fiji 144
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 4 6 5 6 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164 Fiji 482 Jamaica 796 Fiji 144 Fiji 597
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 4 6 5 6 7 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164 Fiji 482 Jamaica 796 Fiji 144 Fiji 597 Jamaica 853
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 4 6 5 6 7 7 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164 Fiji 482 Jamaica 796 Fiji 144 Fiji 597 Jamaica 853 Fiji 522
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 4 6 5 6 7 7 8 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164 Fiji 482 Jamaica 796 Fiji 144 Fiji 597 Jamaica 853 Fiji 522 Jamaica 152
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 4 6 5 6 7 7 8 8 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164 Fiji 482 Jamaica 796 Fiji 144 Fiji 597 Jamaica 853 Fiji 522 Jamaica 152 Fiji 582
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 0 0 1 1 2 2 3 3 4 5 4 6 5 6 7 7 8 8 9 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : Jamaica 401 Fiji 492 Jamaica 947 Fiji 937 Jamaica 97 Fiji 447 Jamaica 598 Fiji 986 Jamaica 699 Jamaica 164 Fiji 482 Jamaica 796 Fiji 144 Fiji 597 Jamaica 853 Fiji 522 Jamaica 152 Fiji 582 Jamaica 325
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : 0 Jamaica 401 0 Fiji 492 1 Jamaica 947 1 Fiji 937 2 Jamaica 97 2 Fiji 447 3 Jamaica 598 3 Fiji 986 4 Jamaica 699 5 Jamaica 164 4 Fiji 482 6 Jamaica 796 5 Fiji 144 6 Fiji 597 7 Jamaica 853 7 Fiji 522 8 Jamaica 152 8 Fiji 582 9 Jamaica 325 DONE! Jamaica
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : 0 Jamaica 401 0 Fiji 492 1 Jamaica 947 1 Fiji 937 2 Jamaica 97 2 Fiji 447 3 Jamaica 598 3 Fiji 986 4 Jamaica 699 5 Jamaica 164 4 Fiji 482 6 Jamaica 796 5 Fiji 144 6 Fiji 597 7 Jamaica 853 7 Fiji 522 8 Jamaica 152 8 Fiji 582 9 Jamaica 325 DONE! Jamaica 9 Fiji 373
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : 0 Jamaica 401 0 Fiji 492 1 Jamaica 947 1 Fiji 937 2 Jamaica 97 2 Fiji 447 3 Jamaica 598 3 Fiji 986 4 Jamaica 699 5 Jamaica 164 4 Fiji 482 6 Jamaica 796 5 Fiji 144 6 Fiji 597 7 Jamaica 853 7 Fiji 522 8 Jamaica 152 8 Fiji 582 9 Jamaica 325 DONE! Jamaica 9 Fiji 373 DONE! Fiji
public class Simple. Thread extends Thread { int st; public Simple. Thread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System. out. print(" "+ i + " " + get. Name()); try { st=(int) (Math. random() * 1000); System. out. println( " " + st); sleep(st); } catch (Interrupted. Exception e) { } } System. out. println("DONE! " + get. Name()); public class Two. Threads. Test { public static void main (String[] args) { new Simple. Thread("Jamaica"). start(); new Simple. Thread("Fiji "). start(); } } reference ref 1 reference ref 2 “Jamaica” “Fijir” ---------------- sleep run set. Name get. Name : : 0 Jamaica 401 0 Fiji 492 1 Jamaica 947 1 Fiji 937 2 Jamaica 97 2 Fiji 447 3 Jamaica 598 3 Fiji 986 4 Jamaica 699 5 Jamaica 164 4 Fiji 482 6 Jamaica 796 5 Fiji 144 6 Fiji 597 7 Jamaica 853 7 Fiji 522 8 Jamaica 152 8 Fiji 582 9 Jamaica 325 DONE! Jamaica 9 Fiji 373 DONE! Fiji
0 Jamaica 401 0 Fiji 492 1 Jamaica 947 1 Fiji 937 2 Jamaica 97 2 Fiji 447 3 Jamaica 598 3 Fiji 986 4 Jamaica 699 5 Jamaica 164 4 Fiji 482 6 Jamaica 796 5 Fiji 144 6 Fiji 597 7 Jamaica 853 7 Fiji 522 8 Jamaica 152 8 Fiji 582 9 Jamaica 325 DONE! Jamaica 9 Fiji 373 DONE! Fiji
Example -2
class Print. Thread extends Thread { private int sleep. Time; public Print. Thread( String name ) { super( name ); sleep. Time = (int) ( Math. random( ) * 50000 ); System. err. println( "Name: " + get. Name( ) + "; sleep: " + sleep. Time ); } public void run( ) { try { System. err. println( get. Name( ) + " going to sleep" ); Thread. sleep( sleep. Time ); } catch ( Interrupted. Exception interrupted. Exception ) { System. err. println( interrupted. Exception. to. String() ); } System. err. println( get. Name( ) + " done sleeping" ); } } public class Thread. Tester { public static void main( String args[] ) { Print. Thread thread 1, thread 2, thread 3, thread 4; thread 1 = new Print. Thread( "thread 1" ); thread 2 = new Print. Thread( "thread 2" ); thread 3 = new Print. Thread( "thread 3" ); thread 4 = new Print. Thread( "thread 4" ); System. err. println( "n. Starting threads" ); thread 1. start(); thread 2. start(); thread 3. start(); thread 4. start(); System. err. println( "Threads startedn" ); } } reference thread 1 “thread 1” Sleeptime=12708 --------sleep run set. Name get. Name :
class Print. Thread extends Thread { private int sleep. Time; public Print. Thread( String name ) { super( name ); sleep. Time = (int) ( Math. random( ) * 50000 ); System. err. println( "Name: " + get. Name( ) + "; sleep: " + sleep. Time ); } public void run( ) { try { System. err. println( get. Name( ) + " going to sleep" ); Thread. sleep( sleep. Time ); } catch ( Interrupted. Exception interrupted. Exception ) { System. err. println( interrupted. Exception. to. String() ); } System. err. println( get. Name( ) + " done sleeping" ); } } public class Thread. Tester { public static void main( String args[] ) { Print. Thread thread 1, thread 2, thread 3, thread 4; thread 1 = new Print. Thread( "thread 1" ); thread 2 = new Print. Thread( "thread 2" ); thread 3 = new Print. Thread( "thread 3" ); thread 4 = new Print. Thread( "thread 4" ); System. err. println( "n. Starting threads" ); thread 1. start(); thread 2. start(); thread 3. start(); thread 4. start(); System. err. println( "Threads startedn" ); } } reference thread 1 thread 2 “thread 1” “thread 2” Sleeptime=12708 Sleeptime=18411 ---------------- sleep run set. Name get. Name : :
class Print. Thread extends Thread { private int sleep. Time; public Print. Thread( String name ) { super( name ); sleep. Time = (int) ( Math. random( ) * 50000 ); System. err. println( "Name: " + get. Name( ) + "; sleep: " + sleep. Time ); } public void run( ) { try { System. err. println( get. Name( ) + " going to sleep" ); Thread. sleep( sleep. Time ); } catch ( Interrupted. Exception interrupted. Exception ) { System. err. println( interrupted. Exception. to. String() ); } System. err. println( get. Name( ) + " done sleeping" ); } } public class Thread. Tester { public static void main( String args[] ) { Print. Thread thread 1, thread 2, thread 3, thread 4; thread 1 = new Print. Thread( "thread 1" ); thread 2 = new Print. Thread( "thread 2" ); thread 3 = new Print. Thread( "thread 3" ); thread 4 = new Print. Thread( "thread 4" ); System. err. println( "n. Starting threads" ); thread 1. start(); thread 2. start(); thread 3. start(); thread 4. start(); System. err. println( "Threads startedn" ); } } reference thread 1 thread 2 “thread 1” “thread 2” Sleeptime=12708 Sleeptime=18411 ---------------- sleep run set. Name get. Name : : reference thread 3 “thread 3” Sleeptime=33617 --------sleep run set. Name get. Name :
class Print. Thread extends Thread { private int sleep. Time; public Print. Thread( String name ) { super( name ); sleep. Time = (int) ( Math. random( ) * 50000 ); System. err. println( "Name: " + get. Name( ) + "; sleep: " + sleep. Time ); } public void run( ) { try { System. err. println( get. Name( ) + " going to sleep" ); Thread. sleep( sleep. Time ); } catch ( Interrupted. Exception interrupted. Exception ) { System. err. println( interrupted. Exception. to. String() ); } System. err. println( get. Name( ) + " done sleeping" ); } } public class Thread. Tester { public static void main( String args[] ) { Print. Thread thread 1, thread 2, thread 3, thread 4; thread 1 = new Print. Thread( "thread 1" ); thread 2 = new Print. Thread( "thread 2" ); thread 3 = new Print. Thread( "thread 3" ); thread 4 = new Print. Thread( "thread 4" ); System. err. println( "n. Starting threads" ); thread 1. start(); thread 2. start(); thread 3. start(); thread 4. start(); System. err. println( "Threads startedn" ); } } reference thread 1 thread 2 “thread 1” “thread 2” Sleeptime=12708 Sleeptime=18411 ---------------- sleep run set. Name get. Name : : reference thread 3 reference thread 4 “thread 3” “thread 4” Sleeptime=33617 Sleeptime=15264 ---------------- sleep run set. Name get. Name : :
class Print. Thread extends Thread { private int sleep. Time; public Print. Thread( String name ) { super( name ); sleep. Time = (int) ( Math. random( ) * 50000 ); System. err. println( "Name: " + get. Name( ) + "; sleep: " + sleep. Time ); } public void run( ) { try { System. err. println( get. Name( ) + " going to sleep" ); Thread. sleep( sleep. Time ); } catch ( Interrupted. Exception interrupted. Exception ) { System. err. println( interrupted. Exception. to. String() ); } System. err. println( get. Name( ) + " done sleeping" ); } } public class Thread. Tester { public static void main( String args[] ) { Print. Thread thread 1, thread 2, thread 3, thread 4; thread 1 = new Print. Thread( "thread 1" ); thread 2 = new Print. Thread( "thread 2" ); thread 3 = new Print. Thread( "thread 3" ); thread 4 = new Print. Thread( "thread 4" ); System. err. println( "n. Starting threads" ); thread 1. start(); thread 2. start(); thread 3. start(); thread 4. start(); System. err. println( "Threads startedn" ); } } reference thread 1 thread 2 “thread 1” “thread 2” Sleeptime=12708 Sleeptime=18411 ---------------- sleep run set. Name get. Name : : reference thread 3 reference thread 4 “thread 3” “thread 4” Sleeptime=33617 Sleeptime=15264 ---------------- sleep run set. Name get. Name : :
class Print. Thread extends Thread { private int sleep. Time; public Print. Thread( String name ) { super( name ); sleep. Time = (int) ( Math. random( ) * 50000 ); System. err. println( "Name: " + get. Name( ) + "; sleep: " + sleep. Time ); } public void run( ) Name: thread 1; { Name: thread 2; try { Name: thread 3; System. err. println( get. Name( ) + " going to sleep" ); Name: thread 4; Thread. sleep( sleep. Time ); } catch ( Interrupted. Exception interrupted. Exception ) Starting threads { System. err. println( interrupted. Exception. to. String() ); } System. err. println( get. Name( ) + " done sleeping" ); } } public class Thread. Tester { public static void main( String args[] ) { Print. Thread thread 1, thread 2, thread 3, thread 4; thread 1 = new Print. Thread( "thread 1" ); thread 2 = new Print. Thread( "thread 2" ); thread 3 = new Print. Thread( "thread 3" ); thread 4 = new Print. Thread( "thread 4" ); System. err. println( "n. Starting threads" ); thread 1. start(); thread 2. start(); thread 3. start(); thread 4. start(); System. err. println( "Threads startedn" ); } } sleep: 12708 18411 33617 15264
class Print. Thread extends Thread { private int sleep. Time; public Print. Thread( String name ) { super( name ); sleep. Time = (int) ( Math. random( ) * 50000 ); System. err. println( "Name: " + get. Name( ) + "; sleep: " + sleep. Time ); } public void run( ) Name: thread 1; sleep: { Name: thread 2; sleep: try { Name: thread 3; sleep: System. err. println( get. Name( ) + " going to sleep" ); Name: thread 4; sleep: Thread. sleep( sleep. Time ); } catch ( Interrupted. Exception interrupted. Exception ) Starting threads { System. err. println( interrupted. Exception. to. String() ); } thread 1 going to sleep System. err. println( get. Name( ) + " done sleeping" ); Threads started } } public class Thread. Tester { public static void main( String args[] ) { Print. Thread thread 1, thread 2, thread 3, thread 4; thread 1 = new Print. Thread( "thread 1" ); thread 2 = new Print. Thread( "thread 2" ); thread 3 = new Print. Thread( "thread 3" ); thread 4 = new Print. Thread( "thread 4" ); System. err. println( "n. Starting threads" ); thread 1. start(); thread 2. start(); thread 3. start(); thread 4. start(); System. err. println( "Threads startedn" ); } } thread 2 going to sleep thread 3 going to sleep thread 4 going to sleep 12708 18411 33617 15264
class Print. Thread extends Thread { private int sleep. Time; public Print. Thread( String name ) { super( name ); sleep. Time = (int) ( Math. random( ) * 50000 ); System. err. println( "Name: " + get. Name( ) + "; sleep: " + sleep. Time ); } public void run( ) Name: thread 1; sleep: { Name: thread 2; sleep: try { Name: thread 3; sleep: System. err. println( get. Name( ) + " going to sleep" ); Name: thread 4; sleep: Thread. sleep( sleep. Time ); } catch ( Interrupted. Exception interrupted. Exception ) Starting threads { System. err. println( interrupted. Exception. to. String() ); } thread 1 going to sleep System. err. println( get. Name( ) + " done sleeping" ); Threads started } } public class Thread. Tester { public static void main( String args[] ) { Print. Thread thread 1, thread 2, thread 3, thread 4; thread 1 = new Print. Thread( "thread 1" ); thread 2 = new Print. Thread( "thread 2" ); thread 3 = new Print. Thread( "thread 3" ); thread 4 = new Print. Thread( "thread 4" ); System. err. println( "n. Starting threads" ); thread 1. start(); thread 2. start(); thread 3. start(); thread 4. start(); System. err. println( "Threads startedn" ); } } thread 2 going to sleep thread 3 going to sleep thread 4 going to sleep thread 1 thread 4 thread 2 thread 3 done sleeping 12708 18411 33617 15264
Example -3
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell -1 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 0 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Producer setting shared. Int to Consumer retrieving shared. Int Producer setting shared. Int to finished producing values Terminating Producer value value value -1 1 1 2 2 3 4 4 5 5 6 6 7 8 8 8 9 9 10 Consumer retrieving shared. Int value retrieved values totaling: 52 Terminating Consumer 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657 1200 180 796 1123 2902 Producer 10 Consumer
reference s. Object reference shared. Int=-1 -------- reference p set. Shsre. Int get. Shrae. Int “Producer” s. Object c --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : public class Shared. Cell { public static void main( String args[] ) { Unsyn s. Object = new Unsyn(); Producer p = new Producer( s. Object ); Consumer c= new Consumer( s. Object ); p. start(); c. start(); } }
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int s. Object c --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell -1 public class Producer extends Thread { private Unsync s. Object; public Producer( Unsyn s ) { super( "Producer" ); s. Object = s; } public void run() { for ( int count = 1; count <= 10; count++ ) { try { Thread. sleep( ( int ) ( Math. random() * 3000 ) ); } catch( Interrupted. Exception exception ) { System. err. println( exception. to. String() ); } s. Object. set. Shared. Int( count ); } System. err. println(get. Name() + " finished producing values" + "n. Terminating " + get. Name() ); Thread (p) } for count=1 to 10 } { sleeping random time and each time put set. Shsre. Int=count } p. start();
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell -1 Thread (p) Thread (c) for public class Consumer extends Thread { private Unsyn s. Object; public Consumer( Unsyn s) { super( "Consumer" ); s. Object = s; } public void run() { int value, sum = 0; do { try { Thread. sleep( (int) ( Math. random() * 3000 ) ); } catch( Interrupted. Exception exception ) { System. err. println( exception. to. String() ); } value = s. Object. get. Shared. Int(); sum += value; } while ( value != 10 ); System. err. println( get. Name() + " retrieved values totaling: “ + sum + "n. Terminating " + get. Name() ); } } do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 0 sum c. start();
public class Unsyn { private int shared. Int = -1; public void set. Shared. Int( int value ) { System. err. println( Thread. current. Thread(). get. Name() + " setting shared. Int to " + value ); shared. Int = value; } public int get. Shared. Int() { System. err. println( Thread. current. Thread(). get. Name() + " retrieving shared. Int value " + shared. Int ); return shared. Int; } }
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell -1 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) -1 sum 2498 1094 Consumer retrieving shared. Int value -1 1727
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 1 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) -1 sum 2498 1094 Consumer retrieving shared. Int value Producer setting shared. Int to -1 1 1727 1202
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 1 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 0 sum 2498 1094 Consumer retrieving shared. Int value Producer setting shared. Int to Consumer retrieving shared. Int value -1 1 1 1727 1202 2582
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 2 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 0 sum 2498 1094 Consumer retrieving shared. Int value Producer setting shared. Int to -1 1 1 2 1727 1202 2582 2822
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 2 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 2 sum 2498 1094 Consumer retrieving shared. Int value Producer setting shared. Int to Consumer retrieving shared. Int value -1 1 1 2 2 1727 1202 2582 2822 2681
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 3 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 2 sum 2498 1094 Consumer retrieving shared. Int value Producer setting shared. Int to -1 1 1 2 2 3 1727 1202 2582 2822 2681 1334
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 4 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 2 sum 2498 1094 Consumer retrieving shared. Int value Producer setting shared. Int to -1 1 1 2 2 3 4 1727 1202 2582 2822 2681 1334 1760
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 4 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 6 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Consumer retrieving shared. Int value -1 1 1 2 2 3 4 4 1727 1202 2582 2822 2681 1334 1760 2825
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 5 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 6 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to value -1 1 1 2 2 3 4 4 5 1727 1202 2582 2822 2681 1334 1760 2825 2032
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 5 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 11 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Consumer retrieving shared. Int value value -1 1 1 2 2 3 4 4 5 5 1727 1202 2582 2822 2681 1334 1760 2825 2032 950
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 6 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 11 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to value value -1 1 1 2 2 3 4 4 5 5 6 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 6 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 17 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Consumer retrieving shared. Int value value -1 1 1 2 2 3 4 4 5 5 6 6 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 7 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 17 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Consumer retrieving shared. Int Producer setting shared. Int to value value -1 1 1 2 2 3 4 4 5 5 6 6 7 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 8 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 17 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Producer setting shared. Int to value value -1 1 1 2 2 3 4 4 5 5 6 6 7 8 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657 1200
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 8 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 25 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Producer setting shared. Int to Consumer retrieving shared. Int value value -1 1 1 2 2 3 4 4 5 5 6 6 7 8 8 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657 1200 180
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 8 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 33 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Producer setting shared. Int to Consumer retrieving shared. Int value value -1 1 1 2 2 3 4 4 5 5 6 6 7 8 8 8 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657 1200 180 796
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 9 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 33 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Producer setting shared. Int to Consumer retrieving shared. Int Producer setting shared. Int to value value -1 1 1 2 2 3 4 4 5 5 6 6 7 8 8 8 9 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657 1200 180 796 1123
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 9 Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 42 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Producer setting shared. Int to Consumer retrieving shared. Int value value value -1 1 1 2 2 3 4 4 5 5 6 6 7 8 8 8 9 9 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657 1200 180 796 1123 2902
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 10 Producer setting shared. Int to finished producing values Terminating Producer Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 42 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Producer setting shared. Int to Consumer retrieving shared. Int value value value 10 -1 1 1 2 2 3 4 4 5 5 6 6 7 8 8 8 9 9 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657 1200 180 796 1123 2902 Producer
reference s. Object reference shared. Int=-1 reference p --------set. Shsre. Int “Producer” get. Shrae. Int c s. Object --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell 10 Producer setting shared. Int to finished producing values Terminating Producer Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time put set. Shsre. Int=count } value=get. Shsre. Int } While (value!=10) 52 sum 2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Producer setting shared. Int to Consumer retrieving shared. Int value value value -1 1 1 2 2 3 4 4 5 5 6 6 7 8 8 8 9 9 10 Consumer retrieving shared. Int value retrieved values totaling: 52 Terminating Consumer 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657 1200 180 796 1123 2902 Producer 10 Consumer
2498 1094 Consumer retrieving shared. Int Producer setting shared. Int to Producer setting shared. Int to Consumer retrieving shared. Int Producer setting shared. Int to finished producing values Terminating Producer value value value -1 1 1 2 2 3 4 4 5 5 6 6 7 8 8 8 9 9 10 Consumer retrieving shared. Int value retrieved values totaling: 52 Terminating Consumer 1727 1202 2582 2822 2681 1334 1760 2825 2032 950 526 1400 657 1200 180 796 1123 2902 Producer 10 Consumer
Example -4
reference s. Object reference shared. Int=-1 reference p Writeable=true --------set. Shsre. Int “Producer” get. Shrae. Int s. Object c --------sleep “Consumer” run s. Object set. Name -------- get. Name sleep : run set. Name get. Name : sharedcell -1 writeablel true Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time and set. Shsre. Int=count } value=get. Shsre. Int } sum 0 While (value!=10)
T sleep P : 2784 reference s. Object and T sleep C : 388 reference shared. Int=-1 Writeable=true p Two threads begin to run and going to sleep deferent times 2784 and 388 --------set. Shsre. Int “Producer” get. Shrae. Int s. Object c “Consumer” --------sleep s. Object run -------- set. Name sleep get. Name run : set. Name Thread ( c ) first wake-up Calling get. Shared. Int get. Name : Synchronized get. Shared. Int running sharedcell -1 if (Writeable=true) -> watting to become T sleep P=2784 writeablel true Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time and value=get. Shsred. Int } set. Shsred. Int=coun t} While (value!=10) sum 0
T sleep P : 2784 and T sleep C : 388 Producer setting shared. Int to 1 reference s. Object reference shared. Int=-1 Writeable=true p Two threads begin to run and going to sleep deferent times 2784 and 388 --------set. Shsre. Int “Producer” get. Shrae. Int s. Object c “Consumer” --------sleep s. Object run -------- set. Name sleep get. Name run : set. Name Thread ( c ) first wake-up Calling get. Shared. Int get. Name : Synchronized get. Shared. Int running sharedcell 1 if (Writeable=true) -> watting to become T sleep P=2784 writeablel false Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time and value=get. Shsred. Int } set. Shsred. Int=coun t} While (value!=10) sum 0 thread ( p) wake-up ( shared. Int=1) (sharedcell=1) Put ( Writeable=false ) Notify thread (c) become ready
reference s. Object reference shared. Int=-1 Writeable=true T sleep P : 2784 and T sleep C : 388 Producer setting shared. Int to 1 Consumer retrieving shared. Int value 1 p --------set. Shsre. Int “Producer” get. Shrae. Int s. Object c “Consumer” --------sleep s. Object run -------- set. Name sleep get. Name run : set. Name Thread ( c ) running Calling get. Shared. Int get. Name : Synchronized get. Shared. Int running sharedcell 1 Writeable=true writeablel value = shared. Object. get. Shared. Int() sum += value true Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time and value=get. Shsred. Int } set. Shsred. Int=coun t} While (value!=10) sum 1
reference s. Object reference shared. Int=-1 Writeable=true p T sleep P : 2784 and T sleep C : 388 Producer setting shared. Int to 1 Consumer retrieving shared. Int value 1 T sleep C : 792 T sleep P : 96 and Producer setting shared. Int to 2 --------set. Shsre. Int “Producer” get. Shrae. Int s. Object c “Consumer” --------sleep s. Object run -------- set. Name sleep get. Name run : set. Name get. Name : sharedcell 2 writeablel false Thread (p) Thread (c) for do count=1 to 10 { { sleeping random time and each time and value=get. Shsred. Int } set. Shsred. Int=coun t} While (value!=10) sum 1 Two threads begin to run again and going to sleep deferent times 96 and 792 thread ( p) wake-up ( shared. Int=2) (sharedcell=2) Put ( Writeable=false ) Notify thread (c) become ready
T sleep P : 2784 and T sleep C : 388 Producer setting shared. Int to 1 Consumer retrieving shared. Int value 1 T sleep C : 792 T sleep P : 96 and Producer setting shared. Int to 2 T sleep P : 559 and Consumer retrieving shared. Int value 2 T sleep C : 1122 Producer setting shared. Int to 3 T sleep P : 192 and Consumer retrieving shared. Int value 3 Producer setting shared. Int to 4 T sleep P : 1545 and T sleep C : 2224 Consumer retrieving shared. Int value 4 Producer setting shared. Int to 5 T sleep P : 2122 and T sleep C : 1349 Consumer retrieving shared. Int value 5 T sleep C : 2886 Producer setting shared. Int to 6 T sleep P : 1869 and Consumer retrieving shared. Int value 6 Producer setting shared. Int to 7 T sleep P : 185 and T sleep C : 665 Consumer retrieving shared. Int value 7 T sleep C : 375 Producer setting shared. Int to 8 T sleep P : 2157 and Consumer retrieving shared. Int value 8 T sleep C : 1061 Producer setting shared. Int to 9 Consumer retrieving shared. Int value 9 T sleep C : 2731 T sleep P : 1365 and Producer setting shared. Int to 10 Producer finished producing values Terminating Producer Consumer retrieving shared. Int value 10 Consumer retrieved values totaling: 55 Terminating Consumer
- Slides: 75