用Java实现多线程服务器程序[Java编程]
本文“用Java实现多线程服务器程序[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
---- 择要:在Java呈现之前,编写多线程程序是一件烦琐且伴随很多不安全因素的事情.操纵Java,编写安全高效的多线程程序变得简单,并且操纵多线程和Java的网络包我们可以便利的实现多线程服务器程序.
---- Java是伴随Internet的大潮产生的,对网络及多线程具有内涵的支持,具有网络时代编程语言的一切特点.从Java的当前利用看,Java主要用于在Internet或局域网上的网络编程,并且将Java作为主流的网络编程语言的趋向愈来愈明显.实际工作中,我们除了利用商品化的服务器软件外,经常需求按照实际环境编写自己的服务器软件,以完成特定任务或与特定客户端软件实现交互.在实现服务器程序时,为提高程序运行效率,降低用户等候时间,我们利用了在Java Applet中常见的多线程技术.
---- 1、Java中的服务器程序与多线程
---- 在Java之前,没有一种主流编程语言可以供应对高级网络编程的固有支持.在其他语言环境中,实现网络程序常常需求深化依靠于操作平台的网络API的技术中去,而Java供应了对网络支持的无平台相关性的完好软件包,使程序员没有必要为系统网络支持的细节而懊恼.
---- Java软件包内涵支持的网络协议为TCP/IP,也是当今最风行的广域网/局域网协议.Java有关网络的类及接口定义在java.net包中.客户端软件普通利用java.net包中的核心类Socket与服务器的某个端口成立衔接,而服务器程序差别于客户机,它需求初始化一个端口举行监听,碰到衔接呼唤,才与呼应的客户机成立衔接.Java.net包的ServerSocket类包含了编写服务器系统所需的一切.下面给出ServerSocket类的部份定义.
public class ServerSocket {
public ServerSocket(int port)
throws IOException ;
public Socket accept() throws IOException ;
public InetAddress getInetAddress() ;
public int getLocalPort() ;
public void close() throws IOException ;
public synchronized void setSoTimeout
(int timeout) throws SocketException ;
public synchronized int
getSoTimeout() throws IOException ;
}
---- ServerSocket构造器是服务器程序运行的底子,它将参数port指定的端口初始化作为该服务器的端口,监听客户机衔接恳求.Port的范围是0到65536,但0到1023是尺度Internet协议保存端口,并且在Unix主机上,这些端口只有root用户可以利用.普通自定义的端口号在8000到16000之间.仅初始化了ServerSocket还是远远不够的,它没有同客户机交互的套接字(Socket),因此需求调用该类的accept办法承受客户呼唤.Accept()办法直到有衔接恳求才返回通信套接字(Socket)的实例.通过这个实例的输入、输出流,服务器可以接纳用户指令,并将呼应后果回应客户机.ServerSocket类的getInetAddress和getLocalPort办法可得到该服务器的IP地址和端口.setSoTimeout和getSoTimeout办法辨别是设置和得到服务器超时设置,假如服务器在timout设按时间内还未得到accept办法返回的套接字实例,则抛出IOException的非常.
---- Java的多线程可谓是Java编程的精华之一,应用得当可以极大地改进程序的呼应时间,提高程序的并行性.在服务器程序中,由于常常要接纳差别客户机的同时恳求或号令,因此可以对每个客户机的恳求生成一个号令处理线程,同时对各用户的指令作出反映.在一些较复杂的系统中,我们还可认为每个数据库查询指令生成单独的线程,并行对数据库举行操作.实践证明,采取多线程计划可以很好的改进系统的呼应,并保证用户指令履行的独立性.由于Java本身是"线程安全"的,因此有一条编程原则是可以独立在一个线程中完成的操作就应当开辟一个新的线程.
---- Java中实现线程的方法有两种,一是生成Thread类的子类,并定义该子类自己的run办法,线程的操作在办法run中实现.但我们定义的类普通是其他类的子类,而Java又不允很多重担当,因此第二种实现线程的办法是实现Runnable接口.通过覆盖Runnable接口中的run办法实现该线程的功效.本文例子采取第一种办法实现线程.
以上是“用Java实现多线程服务器程序[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |