A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。要求循环100次(这道题面试时遇到了4次)
  1. public static void main(String[] args) {
  2.                 ThreadTest1 tt = new ThreadTest1();
  3.                 Inc inc = tt.new Inc();
  4.                 Dec dec = tt.new Dec();
  5.                 for (int i = 0; i < 2; i++) {
  6.                         Thread t = new Thread(inc);
  7.                         t.start();
  8.                         t = new Thread(dec);
  9.                         t.start();
  10.                 }
  11.         }

  12.         private synchronized void inc() {
  13.                 j++;
  14.                 System.out.println(Thread.currentThread().getName() + "-inc:" + j);
  15.         }

  16.         private synchronized void dec() {
  17.                 j--;
  18.                 System.out.println(Thread.currentThread().getName() + "-dec:" + j);
  19.         }

  20.         class Inc implements Runnable {
  21.                 public void run() {
  22.                         for (int i = 0; i < 100; i++) {
  23.                                 inc();
  24.                         }
  25.                 }
  26.         }

  27.         class Dec implements Runnable {
  28.                 public void run() {
  29.                         for (int i = 0; i < 100; i++) {
  30.                                 dec();
  31.                         }
  32.                 }
  33.         }
  34. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马