test/runtime/7158988/TestPostFieldModification.java

Print this page




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 public class TestPostFieldModification {
  25 
  26   public String value;  // watch modification of value
  27 
  28   public static void main(String[] args){
  29 
  30     System.out.println("Start threads");
  31     // this thread modifies the field 'value'
  32     new Thread() {
  33       TestPostFieldModification test = new TestPostFieldModification();
  34       public void run() {
  35         test.value="test";
  36         for(int i = 0; i < 10; i++) {
  37           test.value += new String("_test");
  38         }











  39       }
  40     }.start();
  41 
  42     // this thread is used to trigger a gc
  43     Thread d = new Thread() {
  44       public void run() {
  45         while(true) {
  46           try {
  47             Thread.sleep(100);
  48           } catch (InterruptedException e) {
  49 
  50           }
  51           System.gc();
  52         }
  53       }
  54     };
  55     d.setDaemon(true);
  56     d.start();
  57   }
  58 }


  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 public class TestPostFieldModification {
  25 
  26   public String value;  // watch modification of value
  27 
  28   public static void main(String[] args){
  29 
  30     System.out.println("Start threads");
  31     // this thread modifies the field 'value'
  32     new Thread() {
  33       TestPostFieldModification test = new TestPostFieldModification();
  34       public void run() {
  35         test.value="test";
  36         for(int i = 0; i < 10; i++) {
  37           test.value += new String("_test");
  38         }
  39 
  40         // JDK-8007710
  41         System.out.println("---TestPostFieldModification-run waiting to exit ...");
  42         try {
  43             System.in.read();
  44         } catch (Exception e) {
  45             System.out.println("---TestPostFieldModification-run got unexpected: "+e);
  46             e.printStackTrace();
  47         }
  48          
  49         System.out.println("---TestPostFieldModification-run bye!");
  50       }
  51     }.start();
  52 
  53     // this thread is used to trigger a gc
  54     Thread d = new Thread() {
  55       public void run() {
  56         while(true) {
  57           try {
  58             Thread.sleep(100);
  59           } catch (InterruptedException e) {
  60 
  61           }
  62           System.gc();
  63         }
  64       }
  65     };
  66     d.setDaemon(true);
  67     d.start();
  68   }
  69 }