我一直在思考为什么JDBC只阻塞操作,为什么我不能将一些侦听器设置为假设的事件处理程序onResultSetArrived(ResultSet rs)。为什么我必须为每个JDBC查询阻塞一个线程。
过了一段时间后,我深入研究了Java Sockets (我认为JDBC是建立在它们之上的),并意识到也没有任何事件处理。提供非阻塞读取的唯一选择是通过available()方法,但这非常低效,因为它必须在循环中定期检查。
据我所知,中断是PC中最基本的东西。它从硬件一直到操作系统。在Java中,它可以通过从套接字中读取值的方式实现为事件驱动方式。
现在,我的问题是,我是不是遗漏了什么,有一些变通的方法,或者在中当前的体系结构,是不是每个阻塞操作一个线程?,如果是,效率不是很低吗?
https://stackoverflow.com/questions/51582504
复制相似问题