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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© stormdzh 中级黑马   /  2013-9-16 11:03  /  853 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

利用管道实现线程间通信,看了考试的视频,在看了这个小代码,觉得对管道流的认识进一步加深了。小代码附上:
class Synchronous
{
public static void main(String[] args)
{
  Resources res=new Resources();
  Machinery one=new Machinery("no"+1,res);
  Machinery two=new Machinery("no"+2,res);

  Thread threadone=new Thread(one);
  Thread threadtwo=new Thread(two);
  threadone.start();
  threadtwo.start();
  try
  {
   threadone.join();
   threadtwo.join();
  }
  catch (InterruptedException e)
  {
   e.printStackTrace();
  }
  System.out.println("Hello World!");
}
}
class Resources
{
    public synchronized void Use(String No)
{
     System.out.println(No+"正在使用资源");
  try
  {
  Thread.sleep(1000);
  }
  catch (InterruptedException e)
  {
   e.printStackTrace();
  }
  System.out.println(No+"释放资源");
    }
}
class Machinery implements Runnable
{
Resources res;
String No;
Machinery(String No,Resources res)
{
this.No=No;
this.res=res;
}
public void run()
{
res.Use(No);
}
}

运行结果如下:
no1正在使用资源
no1释放资源
no2正在使用资源
no2释放资源
Hello World!
请按任意键继续. . .


1 个回复

倒序浏览
不错 不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马