黑马程序员技术交流社区
标题:
请问java里有类似c#线程异步模型吗?在那个包里?怎么用?
[打印本页]
作者:
justin1258
时间:
2014-8-5 10:04
标题:
请问java里有类似c#线程异步模型吗?在那个包里?怎么用?
本帖最后由 justin1258 于 2014-8-5 15:27 编辑
在c#里有一种BeginXXX的线程异步模型。比如看下面一段代码:
class Program
{
static void Main(string[] args)
{
// 服务端的监听套接字
TcpListener listener = new TcpListener(new IPAddress(new byte[]{127,0,0,1}), 8080);
// 开启异步监听,这里线程不会阻塞,当收到客户端连接后会回调ClientReceived方法
listener.BeginAcceptTcpClient(ClientReceived, null);
// 当前线程在收到客户端连接之前可以继续做其他的事。
// ...
}
static void ClientReceived(IAsyncResult result)
{
// 当收到客户端连接后做的事
}
}
复制代码
服务端开启异步监听之后不会阻塞,这样的好处是当前线程不用空占着cpu时间不做事,而继续往下执行,提高了服务端的响应性,。至于收到客户端连接后某一个线程会自动执行我指定的ClientReceived方法。
上面的机制在处理IO操作的时候很有用处,但是我在看java 的时候并没有听到老师讲这方面的知识。请问有哪位大虾知道java里有类似的用法吗?
作者:
fantacyleo
时间:
2014-8-5 10:21
http://andinker.iteye.com/blog/1582222
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2