jdk1.4 构建 java多线程,并发设计框架 使用列子(二)
2008-12-06 10:13
856 查看
把读取的数据流,获取数据流后,1启动一个子线程,读取数据,把数据放入缓冲多线程并发队列2把数据交给处理流数据对象,使得读取数据与处理数据分离
import java.io.*;
import java.net.Socket;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
/**
* 获取相关数据流.
* 把读取的数据流,发送给处理数据流的对象ProcessRequestData.
* @author guishuanglin 2008-11-3
*
*/
public class ProcessRequest implements Runnable {
//ByteArrayOutputStream
private ConcurrentQueue cQueue;
private Socket socket;
private Class clientClass;
private int requestCount;
private int cacheByte = 1024;
/**
* @param ss
* @param requestNum
*/
public ProcessRequest(Socket st, int requestCount,int cacheByte,Class clientClass) {
socket = st;
this.requestCount= requestCount;
this.clientClass = clientClass;
this.cacheByte = cacheByte;
CreateCacheQueue();
}
public void run() {
//启动一个子线程,读取数据,把数据放入缓冲队列
new Thread(new ProcessRequestStream(socket,requestCount,cacheByte,cQueue)).start();
// 获取数据流后,把数据交给处理流数据对象,使得读取数据与处理数据分离.
String s = socket.getInetAddress().getHostAddress();
new Thread(new ProcessRequestData(requestCount,s,clientClass,cQueue)).start();
//
ReleaseResource();
}
/**
* 创建客户数据缓冲队
* @date 2008-11-3
*/
public void CreateCacheQueue(){
this.cQueue = new ConcurrentQueue(1024,String.valueOf(requestCount));
}
public void ReleaseResource() {
socket=null;
clientClass=null;
cQueue = null;
}
}
import java.io.*;
import java.net.Socket;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
/**
* 获取相关数据流.
* 把读取的数据流,发送给处理数据流的对象ProcessRequestData.
* @author guishuanglin 2008-11-3
*
*/
public class ProcessRequest implements Runnable {
//ByteArrayOutputStream
private ConcurrentQueue cQueue;
private Socket socket;
private Class clientClass;
private int requestCount;
private int cacheByte = 1024;
/**
* @param ss
* @param requestNum
*/
public ProcessRequest(Socket st, int requestCount,int cacheByte,Class clientClass) {
socket = st;
this.requestCount= requestCount;
this.clientClass = clientClass;
this.cacheByte = cacheByte;
CreateCacheQueue();
}
public void run() {
//启动一个子线程,读取数据,把数据放入缓冲队列
new Thread(new ProcessRequestStream(socket,requestCount,cacheByte,cQueue)).start();
// 获取数据流后,把数据交给处理流数据对象,使得读取数据与处理数据分离.
String s = socket.getInetAddress().getHostAddress();
new Thread(new ProcessRequestData(requestCount,s,clientClass,cQueue)).start();
//
ReleaseResource();
}
/**
* 创建客户数据缓冲队
* @date 2008-11-3
*/
public void CreateCacheQueue(){
this.cQueue = new ConcurrentQueue(1024,String.valueOf(requestCount));
}
public void ReleaseResource() {
socket=null;
clientClass=null;
cQueue = null;
}
}
相关文章推荐
- jdk1.4 构建 java多线程,并发设计框架 使用列子(三)
- jdk1.4 构建 java多线程,并发设计框架 使用列子(四)
- jdk1.4 构建 java多线程,并发设计框架 使用列子(五)
- jdk1.4 构建 java多线程,并发设计框架 使用列子(一)
- jdk1.4 构建 java多线程,并发设计框架 使用列子(六)
- jdk1.4 构建 java多线程,并发设计框架 (五)
- jdk1.4 构建 java多线程,并发设计框架 (二)
- jdk1.4 构建 java多线程,并发设计框架 (三)
- jdk1.4 构建 java多线程,并发设计框架 (四)
- 多线程开发的捷径:构建Java并发模型框架
- 多线程开发的捷径:构建Java并发模型框架
- 多线程开发的捷径:构建Java并发模型框架
- Java并发框架——AQS之如何使用AQS构建同步器
- jdk1.4 构建 java多线程设计框架 (一)
- Java并发框架——AQS之如何使用AQS构建同步器
- Java并发编程核心方法与框架-Future和Callable的使用
- 【Java并发编程】之八:多线程环境中安全使用集合API(含代码)(r)
- Java并发编程--Fork/Join框架使用
- Java Executor并发框架(十四)Executor框架线程池使用原始方式实现生产者消费者模式
- 【Java并发编程】之八:多线程环境中安全使用集合API(含代码)