首页 > 代码库 > JAVA多线程(九)模式-Thread Per Message

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

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