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 impossible? "+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 } |