`
xmong
  • 浏览: 262733 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java多线程设计模式之异步处理请求

阅读更多
Java实现多线程异步处理请求:

Java实现多线程异步处理请求,即一个服务请求启动一个新线程处理请求,每个服务请求异步处理。
设计如下:
Main:程序入口,发起多个服务请求。
Server:服务请求类,接受请求,启动线程处理服务请求。
Handle:处理请求类,线程调用处理类的处理方法来处理请求。

实现如下:

Main:main类,发起多个服务请求。
package com.thread.handle;

/**
 * main类
 * @author Administrator
 *
 */
public class Main {

	
	public static void main(String[] args) {
		
		System.out.println("main start");
		//发出多个服务请求处理
		Server server = new Server();
		server.doRequest("CCCCCCCCC");
		server.doRequest("AAAAAAA");
		server.doRequest("BBBBBBBBB");
		server.doRequest("DDDDDDDD");
		
		System.out.println("main end");
	}
	
}

Server:服务请求类,创建线程处理请求。
package com.thread.handle;


/**
 * 服务请求类
 * 服务接受到一个请求后启动一个新的线程来处理请求
 * @author Administrator
 *
 */
public class Server {

	/**
	 * 处理类
	 */
	Handle handle = new Handle();
	
	public void doRequest(final String str){
		/**
		 * 启动新线程来处理请求
		 */
		new Thread(){
			public void run(){
				//调用处理类来处理请求
				handle.doHandle(str);
			}
		}.start();
		
	}
	
}

Handle:处理请求类

package com.thread.handle;

import java.util.Random;

/**
 * 请求处理类
 * @author Administrator
 *
 */
public class Handle {

	Random random = new Random();
	
	/**
	 * 处理请求
	 * @param str
	 */
	public void doHandle(String str){
		System.out.println("doHandle start:"+str);
		//循环输出字符串的字符
		for (int i = 0; i < str.length(); i++) {
			doSleep();//随机休息
			System.out.print(str.charAt(i));
		}
		System.out.println();
		System.out.println("dHandle end:"+str);
	}
	
	/**
	 * 线程随机休息
	 */
	public void doSleep(){
		try {
			Thread.sleep(random.nextInt(500));
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	};
	
}


执行结果:
main start
doHandle start:CCCCCCCCC
doHandle start:AAAAAAA
main end
doHandle start:DDDDDDDD
doHandle start:BBBBBBBBB
CDDBAABCDABCADBDACDBAA
dHandle end:AAAAAAA
DD
dHandle end:DDDDDDDD
CBBCBCB
dHandle end:BBBBBBBBB
CC
dHandle end:CCCCCCCCC




分享到:
评论

相关推荐

    java多线程设计模式详解

    Java多线程设计模式是Java编程中不可或缺的一部分,它涉及到如何在并发环境下高效、安全地组织代码执行。本文将深入探讨几种常见的Java多线程设计模式,并提供源码实例进行详细解析。 一、生产者消费者模式 生产者...

    Java 多线程编程中的设计模式~

    ### 二、Java多线程设计模式的重要性 在Java中,多线程设计模式的重要性不言而喻。由于多线程环境的复杂性,如果不采用合适的设计模式,很容易导致死锁、数据不一致、竞态条件等并发问题。因此,熟悉并运用这些设计...

    Java多线程设计模式源代码

    本文将深入探讨Java多线程设计模式及其源代码,旨在帮助开发者理解和应用这些模式,提升代码的并发性能和可维护性。 1. **生产者消费者模式**:该模式基于`BlockingQueue`,例如`ArrayBlockingQueue`,用于在生产...

    java多线程设计模式

    ### Java多线程设计模式详解 #### 一、Java多线程基础 Java语言自诞生以来,便内置了对多线程的支持。多线程能够让程序在同一时间处理多个任务,提高程序的执行效率和响应速度。Java中创建线程有两种基本方式: 1...

    java多线程设计模式详解(PDF及源码)

    本资源“java多线程设计模式详解”涵盖了这一主题的深入探讨,包括PDF文档和源码示例。 多线程设计模式是程序员在开发高效、稳定且可维护的多线程应用程序时遵循的一系列最佳实践。以下是一些常见的Java多线程设计...

    图灵图书:图解JAVA多线程设计模式

    ### 图灵图书:图解JAVA多线程设计模式 #### 关键知识点概览 - **Java多线程基础** - 线程的概念与创建方式 - 线程的状态及其转换 - 线程生命周期 - **Java并发编程** - 同步机制(synchronized关键字) - ...

    Java多线程编程实战指南 设计模式篇

    《Java多线程编程实战指南 设计模式篇》是一本深度探讨Java并发编程与设计模式融合的书籍。在Java编程中,多线程是提升系统性能、实现并行计算的关键技术,而设计模式则是解决常见问题的最佳实践。本书旨在帮助...

    java多线程高级设计模式详解

    Java多线程高级设计模式详解 在Java编程中,多线程是不可或缺的一...以上就是Java多线程高级设计模式的一些主要内容,理解并熟练运用这些模式,能让你在处理并发问题时更加得心应手,编写出高效且健壮的多线程程序。

    java 多线程 socket聊天程序

    总之,Java多线程Socket聊天程序是学习网络编程和并发处理的好例子。它展示了如何使用Java的Socket API建立网络连接,以及如何通过多线程技术处理并发的客户端请求。通过理解和实践这样的项目,开发者可以深入理解...

    java并发(二十四)多线程结果组装

    在Java编程中,多线程是并发处理任务的关键技术,特别是在高性能、高并发的应用场景下。本篇将探讨“多线程结果组装”的主题,它涉及到如何在多个并发执行的任务完成后,有效地收集并整合这些任务的结果。这个过程...

    Java_异步消息处理

    ### Java异步消息处理知识点详解 #### 一、适应不同类型的请求 在Java异步消息处理中,系统设计需要能够...这种设计模式不仅实现了异步消息处理,而且还支持了跨机器的远程调用,有效地提高了系统的性能和扩展性。

    java多线程聊天室

    Java多线程聊天室是一个基于C/S(Client/Server)架构的简单通信示例,它利用了Java的网络编程和多线程特性。在这样的系统中,服务器端(Server)使用`ServerSocket`来监听客户端(Client)的连接请求,而客户端则...

    Java使用starling分布式消息队列异步处理事务

    异步处理是现代高并发系统中的一种常见设计模式,它通过将耗时的操作从主线程中分离出来,避免了阻塞,提高了系统的响应速度。在Java中,使用Starling可以创建一个消息队列,生产者将任务封装成消息并放入队列,消费...

    多线程,高并发.zip

    在Java中,线程是轻量级的,因为它共享进程的内存空间,这使得多线程成为处理大量并发任务的有效方式。创建Java线程有两种主要方法:通过实现`Runnable`接口或继承`Thread`类。`Runnable`通常更灵活,因为它允许线程...

    同步异步多线程SOCKET通讯

    本主题将深入探讨同步异步多线程Socket通信,这涉及到如何在多个线程中处理I/O操作,以及同步与异步模型的选择对性能和程序设计的影响。 **同步与异步** 同步和异步是两种处理I/O操作的不同方式。在同步模式下,...

    zeromq中多线程的jave实现

    这种多线程设计能够提高并发处理能力,确保即使在高负载下,系统也能有效地处理请求。 在Java中,我们可以使用`java.util.concurrent`包中的线程类来实现多线程。每个线程可能包含一个zeromq上下文(`ZMQ.Context`...

    java多线程Client/Server程序

    下面将详细讨论Java多线程在Client/Server程序中的应用及其相关知识点。 1. **Java多线程** - **线程的创建**:在Java中,可以通过实现`Runnable`接口或继承`Thread`类来创建线程。在Client/Server程序中,通常会...

    Java 23种设计模式18命令模式 .pdf

    ### Java 23种设计模式之18命令模式详解 #### 模式介绍 命令模式是一种行为设计模式,它把请求封装成一个对象,从而让我们可以用...在实际项目中,尤其是在需要处理异步操作或多线程环境时,命令模式的应用尤为广泛。

Global site tag (gtag.js) - Google Analytics