Java高级特性(4)作业

2008年5月20日 | 分类: 后端语言 | 标签:

题目:

试编写一个基于消息队列的股票交易价格显示程序。该程序中的一个线程模拟从卫星通信、微波通信或股票信息发射台等不同途径获取最新的股票交易价格信息,并将价格数据写入一个消息队列中;程序中的另一个线程负责从消息队列中取出价格数据,并以图形方式展示给终端用户。
(提示:设计本程序的关键是处理好消息队列的同步问题;还可考虑使用输入?输出流或JDBC 实现消息队列的持久性。)

什么是消息队列:

消息队列是线程间通讯的手段:

import java.util.*

public class MsgQueue{

   private Vector  queue = null;

   public MsgQueue(){

              queue  = new   Vector();

   }

   public synchronized void send(Object o)

   {

      queue.addElement(o);

   }

   public synchronized Object recv()

  {

     if(queue.size()==0)

        return null;

     Object o = queue.firstElement();

     queue.removeElementAt(0);//or queue[0] = null can also work

     return o;

  }

}

 

同时可以使用java.util.concurrent来实现连接池、消息队列

 

多线程:

实现方式:

extend Thread

implements Runnable

构造是Thread(适合Run方法小的情况下)

线程加锁:synchronized

线程之间的通信:wait() 和notifyAll()

 

Web服务器(Web Container  such as Tomcat and Apache)的作用:产生一个连接池,为每一个连接分类一个线程,这样做能够省去每个请求创建Thread对象的开销。

目前还没有任何评论.
注意: 评论者允许使用'@user:'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC:'(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。