A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 justin1258 于 2014-8-5 15:27 编辑

在c#里有一种BeginXXX的线程异步模型。比如看下面一段代码:
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             // 服务端的监听套接字
  6.             TcpListener listener = new TcpListener(new IPAddress(new byte[]{127,0,0,1}), 8080);

  7.             // 开启异步监听,这里线程不会阻塞,当收到客户端连接后会回调ClientReceived方法
  8.             listener.BeginAcceptTcpClient(ClientReceived, null);

  9.             // 当前线程在收到客户端连接之前可以继续做其他的事。
  10.             // ...
  11.         }

  12.         static void ClientReceived(IAsyncResult result)
  13.         {
  14.             // 当收到客户端连接后做的事
  15.         }
  16.     }
复制代码
服务端开启异步监听之后不会阻塞,这样的好处是当前线程不用空占着cpu时间不做事,而继续往下执行,提高了服务端的响应性,。至于收到客户端连接后某一个线程会自动执行我指定的ClientReceived方法。
上面的机制在处理IO操作的时候很有用处,但是我在看java 的时候并没有听到老师讲这方面的知识。请问有哪位大虾知道java里有类似的用法吗?


1 个回复

倒序浏览
http://andinker.iteye.com/blog/1582222
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马