CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > Java技术

如何使用Java编写多线程程序

作者: 佚名,  出处:IT专家网论坛, 责任编辑: 包春林, 
2008-04-23 04:00
  线程呢可以看作单独地占有CPU时间来执行相应的代码的。当然一个程序可以是多线程的,多线程的各个线程看上去像是并行地独自完成各自的工作,就像一台一台计算机上运行着多个处理机一样。

  1、什么是线程

  线程呢可以看作单独地占有CPU时间来执行相应的代码的。当然一个程序可以是多线程的,多线程的各个线程看上去像是并行地独自完成各自的工作,就像一台一台计算机上运行着多个处理机一样。在多处理机计算机上实现多线程时,它们确实可以并行工作,而且采用适当的分时策略可以大大提高程序运行的效率。

  2、为什么要使用多线程

  顺序执行程序和采用多线程并行执行程序相比,效率是可以大大地提高。

  3、java中是如何实现多线程

  在java语言中的线程系统是java语言自建的, 因为java中有专门的支持多线程的API库,所以很容易写一个支持线程的程序。在使用java创建线程的时候,可以生成一个Thread类或者他的子类对象,并给这个对象发送start()消息(程序可以向任何一个派生自 Runnable 接口的类对象发送 start() 消息的),这样一来程序会一直执行,直到run返回为止,此时该线程就停止了。

  在这里我们用多线程中最典型的例子,生产者与消费者问题。在这个例子里面我们定义了生产者Producer,消费者Consumer和仓库Warehouse三个类,在整个程序的生命周期里,生产者随机地制造出产品放到仓库中,消费者也是随即地从仓库中取出产品。

  

      import exception.ProducerConsumerException;

  /**

  * Consumer.java

  * Consumer

  * By: Jiabo

  * Date: Mar 21, 2004

  * Time: 2:47:58 PM

  */

  public class Consumer extends Thread {

  private Warehouse warehouse;

  private String id;

  public Consumer(Warehouse warehouse, String id) {

  this.warehouse = warehouse;

  this.id = id;

  }

  public void run() {

  int tmp = (int) Math.random() * 10;

  try {

  warehouse.get(tmp);

  System.out.println("Consumer # " + this.id + " get " + tmp);

  } catch (ProducerConsumerException e) {

  e.printStackTrace();

  }

  try {

  sleep((int) (Math.random() * 100));

  } catch (InterruptedException e) {

  e.printStackTrace();

  }

  }

  }

共3页。 1 2 3 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i