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