首页 » 2019年9月

unrecognized import path "google.golang.org/grpc

mkdir -p $GOPATH/src/google.golang.org/
cd $GOPATH/src/google.golang.org
git clone https://github.com/grpc/grpc-go grpc

or


replace (

 // 如果用latest  则会因为V0.40以后版本出现需要cloud.google.com/go/……  的问题,所以当前使用低版本

cloud.google.com/go => github.com/GoogleCloudPlatform/google-cloud-go v0.34.0     

golang.org/x/crypto => github.com/golang/crypto v0.0.0-20190701094942-4def268fd1a4

golang.org/x/exp => github.com/golang/exp v0.0.0-20190731235908-ec7cb31e5a56

golang.org/x/image => github.com/golang/image v0.0.0-20190802002840-cff245a6509b

golang.org/x/lint => github.com/golang/lint v0.0.0-20190409202823-959b441ac422

golang.org/x/mobile => github.com/golang/mobile v0.0.0-20190814143026-e8b3e6111d02

golang.org/x/mod => github.com/golang/mod v0.1.0

golang.org/x/net => github.com/golang/net v0.0.0-20190813141303-74dc4d7220e7

golang.org/x/oauth2 => github.com/golang/oauth2 v0.0.0-20190604053449-0f29369cfe45

golang.org/x/sync => github.com/golang/sync v0.0.0-20190423024810-112230192c58

golang.org/x/sys => github.com/golang/sys v0.0.0-20190813064441-fde4db37ae7a

golang.org/x/text => github.com/golang/text v0.3.2

golang.org/x/time => github.com/golang/time v0.0.0-20190308202827-9d24e82272b4

golang.org/x/tools => github.com/golang/tools v0.0.0-20190814235402-ea4142463bf3

golang.org/x/xerrors => github.com/golang/xerrors v0.0.0-20190717185122-a985d3407aa7

google.golang.org/api => github.com/googleapis/google-api-go-client v0.8.0

google.golang.org/appengine => github.com/golang/appengine v1.6.1

google.golang.org/genproto => github.com/ilisin/genproto v0.0.0-20181026194446-8b5d7a19e2d9

google.golang.org/grpc => github.com/grpc/grpc v1.22.0

)

manjaro 安装输入法sougoupinyin

  1. 添加中科大源

sudo vim /etc/pacman.conf

[archlinuxcn]

SigLevel = Never

Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
  1. 导入GPG Key
sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring

3.安装



    sudo pacman -S fcitx-im  fcitx-configtool  fcitx-sogoupinyin
  1. 添加输入法配置文件 sudo vim ~/.profile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

5.error: target not found: fcitx-sogoupinyin

  sudo pacman -S fcitx-im  fcitx-configtool  fcitx-googlepinyin

基于mysql> select * from T where ID = 10;简略分析mysql走过的流程。 首先mysql 是分层的,查询语句首先经过server 层,然后进入存储引擎层(innodb)。 server 层又分为流程: 连接器---查询缓存-----分析器-----优化器---执行器。引擎层可以是innodb和myisam 等,它们共用一个server

第一步。连接器----负责和客户端建立连接(TCP握手),验证获取权限,维持和管理连接

  • 连接命令 mysql -h $ip -P port -u User -p password ,mysql客户端首先完成3次握手,然后发送用户名密码。
  • 验证成功后,读取相应权限放到连接中(注意后续的更改权限不会影响此次连接)
  • 一般采用长连接,比较高效。
  • 连接器会定时检查连接的时间,超过8个小时没有活动的连接会被关闭掉
  • 可以用show processes 查看所有的连接。
  • 连接会占用系统资源,如果进行了一个比较大的操作,可以执行mysql_reset_connection,重置连接,释放资源

第二步。 查询缓存,(注意mysql8之后,去掉了缓存,所以没有这一步)。

  • mysql 语句和结果,会以key value的形式存在于内存中,如果sql语句命中缓存,则直接返回
  • 对一个表的更新。会清理这个表的所有缓存,所以,经常更新的表不要使用缓存。
  • query_cache_type 这个系统变量控制着查询缓存工能的开启的关闭,query_cache_type=0时表示关闭,1时表示打开,2表示只要select 中明确指定SQL_CACHE才缓存

第三步。 分析器,对SQL语句进行解析,类似编译原理的前期阶段。

  • 词法分析,分析语句有哪些词(编译原理叫token)
  • 语法分析,判断是否符合mysql 语法规则,如果不满足,报错:You have an error in your SQL syntax

第三步。 优化器,在语句被执行之前,优化执行过程达到更好的效率。

  • 决定使用哪个索引
  • 决定表的连接join顺序

第四步。 执行器 开始执行语句,调用引擎层

  • 执行器先判断权限,如果没有权限,返回错误。(这一步不在前面做,有些触发器在执行阶段才知道)
  • 调用innodb引擎的接口获取一条数据,然后循环取满足条件的下一行
  • 最后将结果返回给前端。

其实这三个词关系不是很大,但是因为长的像,所以在中国是常见的面试题。哈哈

1.final 修饰变量/参数,不可更改(指针),如果时list,则里面还是能添加对象的,这点和immutable不同啊。
2.finally 和try配合使用,除非try里面用了System.exit()否则,finally一定会执行。
3.finalize 是给垃圾回收器用的。但是垃圾回收的时间是不确定的,所以可能造成OOM哦。而且jvm在调用finalize的时候会吞掉里面的任何异常,造成不可预知的结果。JDK9已经标记这个方法为depreciate。如果想用,可以用java.lang.ref.Cleaner,虽然单独出线程来处理了。不会造成死锁,但是还是建议不要用cleaner。最好的方法还是用完显式的释放。