题目:设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

ThreadTest 2 { j; main(String[] args) 5 { 6ThreadTest t = new ThreadTest(); 7Add add = t.new Add(); 8Sub sub = t.new Sub();(int i=0;i<2;i++)11 {12Thread t1 = new Thread(add);13 t1.start();14Thread t2 = new Thread(sub);15 t2.start();16 }17 }这里add方法和sub方法加synchronized关键字是因为当两个线程同时操作同一个变量时,20 * 就算是简单的j++操作时,香港服务器租用,香港服务器租用,在系统底层也是通过多条机器语句来实现,所以在执行j++过程也是要耗费时间,美国空间,21 * 这时就有可能在执行j++的时候,另外一个线程H就会对j进行操作,因此另外一个线程H可能操作的可能就22 * 不是最新的值了。因此要提供线程同步。 add() 25 {26j++;27System.out.println(Thread.currentThread().getName()+”:”+j);28 } sub()31 {32j–;33System.out.println(Thread.currentThread().getName()+”:”+j);34 }Add implements Runnable37 { run()39 {40for(int i=0;i<100;i++)41 {42 add();43 }44 }45 }Sub implements Runnable48 { run()50 {51for(int i=0;i<100;i++)52 {53 sub();54 }55 }56 }57 }天才是百分之一的灵感加上百分之久十久的努力

题目:设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。

相关文章:

你感兴趣的文章:

标签云: