Day2
今日学习:
1. asyncio异步socket通信
2. aiomysql异步连接mysql
学习疑问:
1.为什么要使用异步的方式操作数据库?
异步在处理多任务更快!
比如说查询数据库,如果使用同步的方式,那么一次只能进行一次查询;而如果是异步,则可以“同时”的进行多个操作;
但,如果要求只是一次只进行一次操作,那么同步异步无所谓。
2.为什么要使用异步socket?
如果只使用一个socket:
1.同步:可靠性高(因为同步处理的方式是一对一模式),但效率低;如果使用多线程提高效率,那么还是会有线程的创建和销毁消耗。
2.异步:异步效率高,但异步对sokcet的操控相对复杂
3.阻塞与非阻塞的特性
阻塞好控制,不发送完数据程序不会走下去。但是对性能有影响。
非阻塞不太好控制,可能和能力有关,但是性能会得到很大提升。
今日自学目标:
1.掌握go语言基础语法
asynico是一个基本库,而网络编程的框架有tornado 和 twisted,性能都差不多;
不过go语言的网络编程语法更简洁,维护起来更快捷。
2.学会使用aiomysql对mysql操作
2.1学会处理异步和连接池相关操作
2.2实现CRUD功能,
学习总结:
1.go的语法与C语言类似,两个小时就能过一遍
2.网上有很多教程关于单例模式连接数据库,但是这样会很严重,单一连线造成严重的性能问题!
, 3.asynico的语法比较难懂,但是它的效率非常之高