2024年6月7日发(作者:)
多线程Java Socket编程示例这篇做为学习孙卫琴<
中采用Java 5的ExecutorService来进行线程池的方式实现多线程,模拟客户端多用户向同一
服务器端发送请求.
接口Executor
void execute(Runnable command)
在未来某个时间执行给定的命令。
接口ExecutorService(继承Excutor接口)
提交一个返回值的任务用于执行,返回一个表示任务
的未决结果的 Future。
Future> submit(Runnable task)
提交一个 Runnable 任务用于执行,并返回一个表示
该任务的 Future。
提交一个 Runnable 任务用于执行,并返回一个表示
该任务的 Future。
工厂类Executors
static ExecutorService newCachedThreadPool()
创建一个可根据需要创建新线程的线程池,但是
在以前构造的线程可用时将重用它们。
static ExecutorService newCachedThreadPool(ThreadFactory threadFactory)
创建一个可根据需要创建新线程的线程池,但是
在以前构造的线程可用时将重用它们,并在需要时使用提供
的 ThreadFactory 创建新线程。
static ExecutorService newFixedThreadPool(int nThreads)
创建一个可重用固定线程数的线程池,以共享的
无界队列方式来运行这些线程。
static ExecutorService newFixedThreadPool(int nThreads,
ThreadFactory threadFactory)
创建一个可重用固定线程数的线程池,以共享的
无界队列方式来运行这些线程,在需要时使用提供的
ThreadFactory 创建新线程。
static ExecutorService newSingleThreadExecutor()
创建一个使用单个 worker 线程的 Executor,以
无界队列方式来运行该线程。
static ExecutorService newSingleThreadExecutor(ThreadFactory threadFactory)
创建一个使用单个 worker 线程的 Executor,以
无界队列方式来运行该线程,并在需要时使用提供的
ThreadFactory 创建新线程。
接口Future
boolean cancel(boolean mayInterruptIfRunning)
试图取消对此任务的执行。
V get()
如有必要,等待计算完成,然后获取其结果。
V get(long timeout, TimeUnit unit)
如有必要,最多等待为使计算完成所给定的时间之后,获
取其结果(如果结果可用)。
boolean isCancelled()
如果在任务正常完成前将其取消,则返回 true。
boolean isDone()
如果任务已完成,则返回 true。
类 ServerSocket
Socket accept()
侦听并接受到此套接字的连接。
类 Socket
void connect(SocketAddress endpoint)
将此套接字连接到服务器。
void connect(SocketAddress endpoint, int timeout)
将此套接字连接到服务器,并指定一个超时值。
InetAddress getLocalAddress()
获取套接字绑定的本地地址。
int getLocalPort()
返回此套接字绑定到的本地端口。
SocketAddress getLocalSocketAddress()
返回此套接字绑定的端点的地址,如果尚未绑定则
返回 null。
InputStream getInputStream()
返回此套接字的输入流。
OutputStream getOutputStream()
返回此套接字的输出流。
int getPort()
返回此套接字连接到的远程端口。
1.服务端
package sterning;
import edReader;
import ption;
import tream;
发布评论