关于单线程的困惑,线程阻塞问题

本人java才工作没有多久,最近用jdbc时,有个问题有点想不明白,就时jdbc在连接数据库时,主线程为什么会等待jdbc返回的结果后再执行下面的代码,它为什么会有"监听的作用",十分感谢回答.

首先单线程就是这么个逻辑,就是“一根筋”,必须一项一项执行,不能并发。
后续代码依赖于数据库交互的结果,那么就必须要等待结果才能继续向下。
如果需要异步处理,那么代码逻辑就不能是调用数据库接口后继续执行数据库数据处理逻辑,而是应该等数据库给出结果处理完成的通知事件中进行后续的数据处理逻辑才行

跟监听没有关系,单线程就是这样,执行完一个代码再执行下一个
这是等待,不是监听

等待是必然的呀,代码里写了个read,那如果不等read结束就往下执行,那read结束的时候怎么知道呢?
除非你用异步方法
同步方法就是要等方法执行完才执行下面的呀
这很难理解吗
你写个int a=1+1,难道不需要先把1+1算完赋值给a再往下执行,而是把任务交给cpu就不管了吗

这个要研究一下数据库通讯的协议了。
一般来说,java给数据库发送消息后,会按照协议等待服务器回传特定字符表示结束,
接收到这个字符后,通讯结束,然后执行后面的程序。

你也可以自己开一个线程不用等待结果