首页 > 编程语言 > 详细

JAVA多线程(九)模式-Thread Per Message

时间:2016-09-29 22:33:12      阅读:194      评论:0      收藏:0      [点我收藏+]

Thread Per Message

请求的频率高于处理速度,由线程池平衡请求速度和处理速度。

适用环境

不需要返回数据,处理顺序无关的场景。

样例

每一次请求都由线程池中一个线程处理。

服务端

package ThreadPerMessage;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Host{
	private ExecutorService executor = Executors.newFixedThreadPool(5);

	public void process(final String caller,final String msg){
		executor.execute(new Runnable(){
			@Override
			public void run() {
				System.out.println(Thread.currentThread().getName()+" "+caller+":"+msg);
				try {
					Thread.sleep(100);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			
		});
	}
}

测试类

package ThreadPerMessage;

import java.util.UUID;

public class Test {
	public static void main(String[] args){
		final Host host=new Host();
		new Thread(new Runnable(){

				@Override
				public void run() {
					while(true){
						host.process("a", UUID.randomUUID().toString());
					}
					
				}
			}
		).start();
		
		new Thread(new Runnable(){

			@Override
			public void run() {
				while(true){
					host.process("b", UUID.randomUUID().toString());
				}
				
			}
		}
	).start();
	}
}

本文出自 “JAVA技术栈笔记” 博客,请务必保留此出处http://stroll.blog.51cto.com/11038467/1857729

JAVA多线程(九)模式-Thread Per Message

原文:http://stroll.blog.51cto.com/11038467/1857729

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!