读锁嵌套导致死锁

golang 在使用读写锁时,切记出现读锁的嵌套,当程序在获取到第一个读锁的时候,此时执行了写锁,导致后续的读锁不能够获取,同样写锁也在等待第一个读锁的释放,从而造成死锁.

panic: sql: Register called twice for driver mysql

go-sql-driver 包中包含 init 方法,只要导入包就会被执行,但是按照其实现,该包只能够被导入一次,但是因为 vendor 的作用,会出现该包出现被导入多次的情况,从而在使用次包的时候,最好不要添加 vendor