应用Executor实现的WebServer

使用Executor实现的WebServer
1.通过使用Executor将处理请求任务的提交与它的执行体进行解耦。
eg:
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
/**
 * 用Executor创建数量为100的线程池来构建简易的WebServer
 * @author yale
 *
 */
public class TaskExecutionWebServer
{
	private static final int THREAD_NUM = 100;// 定义线程池中线程数量

	private static final Executor exec = 
			Executors.newFixedThreadPool(THREAD_NUM);
	
	public static void main(String[] args) throws Exception
	{
		ServerSocket socket = new ServerSocket(80);
		
		while(true)
		{
			final Socket connection = socket.accept();
			
			Runnable task = new Runnable(){

				public void run()
				{
					//handelRequest(connection);  
					
				}
				
			};
			exec.execute(task);
		}
	}
	

}




注意:
无论何时当你看到这种形式的代码:

new Thread(runnable).start();

并且你可能最终希望获得一个更加灵活的执行策略时,请认真考虑使用Executor代替Thread。