Java客户端服务器,多线程

时间:2014-11-12 10:21:43

标签: java multithreading sockets client server

我目前正在编写一个客户端 - 服务器JAVA应用程序,我有点陷入困境。我在网上搜索了一些有用的代码。我找到了这个示例(我想在等待连接时使用它)但是我真的不明白这段代码应该做什么,有人可以帮忙吗? :)

Executor threadpool = Executors.newScheduledThreadPool(maxClients);

1 个答案:

答案 0 :(得分:0)

Executor界面和Executors Factory帮助您使用ThreadPools。

在您的情况下:您希望同时处理传入的客户端连接。所以你需要一个Thread。因此,向执行者提交任务是一种不会被线程创建等困扰的便捷方式。

所以行

Executor threadpool = Executors.newScheduledThreadPool(maxClients);

声明threadpool是执行者(可以在以后提交任务)但你不关心哪些实现。 " ="的右侧然后使用Factory检索Executor的一个实现的实例。在这种情况下,它是ScheduledThreadPool,其中至少有maxClients个线程等待新任务。

在代码中它可能会像

一样使用
threadpool.execute( new ClientHandler(socket) );

其中ClientHandler是一个实现Runnable的helperclass,用于处理客户端的IO。