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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 skill20 于 2014-4-23 19:13 编辑
  1. public class  LockTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Thread t1 = new Thread(new InterPut());
  6.                 Thread t2 = new Thread(new OutPut());
  7.                 t1.start();
  8.                 t2.start();
  9.         }
  10. }
  11. class InterPut implements Runnable
  12. {
  13.         Person  a = Person.getS();
  14.         boolean f;
  15.         public void run()
  16.         {
  17.                 int x = 0;
  18.                 while(true)
  19.                 {
  20.                         if(x == 0)
  21.                                 a.set("zhangya_________",23);
  22.                         else
  23.                                 a.set("chenghu——————————————",26);
  24.                         x = (x + 1)%2;
  25.                 }
  26.         }
  27. }
  28. class OutPut implements Runnable
  29. {
  30.         Person b = Person.getS();
  31.         public void run()
  32.         {
  33.                 while(true)
  34.                 {
  35.                         b.get();
  36.                 }
  37.         }
  38. }
  39. class Person
  40. {
  41.         private static boolean flag;
  42.         private static String name;
  43.         private static int age;
  44.         private static Person s = new Person("lishi",45);
  45.         private Person(String name, int age)
  46.         {
  47.                 s.name = name;
  48.                 s.age = age;
  49.         }
  50.         public static  Person getS()
  51.         {
  52.                 return s;
  53.         }
  54.         public synchronized void set(String name , int age)
  55.         {
  56.                 if(flag == true)
  57.                         try{ s.wait();}
  58.                         catch(Exception e){}
  59.                 s.name = name;
  60.                 s.age = age;
  61.                 flag = true;
  62.                 s.notify();
  63.         }
  64.         public synchronized void get()
  65.         {
  66.                 if(flag == false)
  67.                         try{ s.wait();}
  68.                         catch (Exception e){}
  69.                 System.out.println(s.name + s.age);
  70.                 flag = false;
  71.                 s.notify();
  72.         }
  73. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

0 个回复

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