栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

可以异步调用jdbc吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

可以异步调用jdbc吗?

我不明白在Actor,executor或其他任何东西中包装JDBC调用的提议方法如何能在这里提供帮助-有人可以澄清一下。

当然,基本问题是JDBC操作在套接字IO上阻塞。执行此操作时,它将阻止线程在故事结尾运行。无论选择哪种包装框架,使用它最终都会导致每个并发请求保持一个线程繁忙/阻塞。

如果基础数据库驱动程序(MySql?)提供了一种方法来拦截套接字的创建(请参见SocketFactory),那么我想可以在JDBC
api之上构建异步事件驱动的数据库层,但是我们必须封装整个JDBC在事件驱动的外观后面,并且该外观看起来不像JDBC(在事件驱动之后)。数据库处理将在与调用方不同的线程上异步发生,并且您必须弄清楚如何构建不依赖线程亲和力的事务管理器。

就像我提到的方法一样,它甚至允许单个后台线程处理并发JDBC执行程序的负载。实际上,您可能会运行一个线程池来利用多个内核。

(当然,我不是在评论原始问题的逻辑,只是回答那些暗示在没有选择器模式的情况下,在阻塞套接字IO的情况下并发是可能的-
简单地算出典型的JDBC并发并放入在大小合适的连接池中)。


看起来MySql可能按照我的建议做了一些事情— http://pre.google.com/p/async-mysql-
connector/wiki/UsageExample



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号