对Mysql连接、会话、事务的理解
连接是物理概念,会话是抽象概念
一个连接上可以有多个会话,一个会话上可以有多个事务,反之则不行。
比喻:就好比座机电话,打通了代表创建了一个连接,电话两头可能有多人聊天,张三对李四,王五对赵六,两个人聊起来就代表会话。
通信者之间说完一件事儿还可以再说另外一件事儿,代表会话上的多个事务。
TCP连接和线程的关系
TCP连接和线程之间在纯技术本身没有任何从属关系,即,A线程创建的连接如果是共享变量B线程是可以直接访问的。
客户端为例,C3P0等数据库连接池中的连接是可以在线程间被共享的。
服务端为例,Netty的服务端连接背后的IO处理线程经常两三个,既不是一对多,也不是一个连接一个线程。
由于连接的使用者(客户端和服务器端都有可能)经常让线程做出得不到响应就不离开的同步通信,所以给人一种一个连接对应一个线程的错觉。