Program 19.7: Synchronized Byte Printer

Program 19.7 shows a class with a static variable i and a print method. Since i is a static variable, there is a chance that a different instance of this class in a different method might change i before youšre finished printing. The synchronized keyword guarantees that no more than one instance of this method is going to run at once so i wonšt suddenly be changed from 5 to 17 while the for loop is executing.

public class SynchronizedPrinter {

  static int i = 0;

  public synchronized void print() {
    for (i = 1; i <= 10; i++) {
      System.out.println(i);
    }
  }
  
}

Copyright 1996 Elliotte Rusty Harold
elharo@sunsite.unc.edu
This Chapter
Examples
Home