hidetaka

17
获赞数
13
关注数
1
粉丝数
IP 属地未知
2018-05-30 加入
浏览 5.1k
╭╮╱╭┳━━━┳╮╱╭╮
┃┃╱┃┃╭━╮┃┃╱┃┃
┃╰━╯┃┃┃┃┃╰━╯┃
╰━━╮┃┃┃┃┣━━╮┃
╱╱╱┃┃╰━╯┃╱╱┃┃
个人简介什么都没有
162 声望|学徒
java
110
go
91
c++
64
python
57
rpc
56
黄金勋章
暂未获得该勋章
如何获得
白银勋章
暂未获得该勋章
如何获得
2 青铜勋章
个人动态
  • 回答了问题2018-08-28
    go语言实现 in_array的问题
    {代码...} 查找这个事,只有比较函数和类型有关,算法逻辑本身和类型无关,所以把比较函数作为一个参数,就可以达到通用算法的效果了。
  • 回答了问题2018-07-04
    非阻塞状态下recv返回值问题
    非阻塞模式下,没有数据返回值是-1,并且错误码是EAGAIN or EWOULDBLOCK。
  • 回答了问题2018-06-13
    linux中创建模块,调用do_fork,插入模块的时候,显示失败
    insmod的时候,会动态解析符号地址,do_fork这个符号时内核没有导出的,所以不会解析成功。内核通过EXPORT_SYMOBL导出的符号,模块才可以使用,可以理解为这是内核提供给模块的“合法”API。
  • 回答了问题2018-06-12
    Linux同步和异步-事件循环
    我们就以HTTP请求的处理过程为例,为简化说明,仅考虑网络IO,不考虑文件IO和数据库等其他过程,也不考虑多核系统。考虑采用如下最简模型来处理HTTP请求:
  • 回答了问题2018-06-11
    Golang在接口开发的过程中,这两种方式哪一种更好,或者有什么问题?
    用户对文章的浏览请求,这个是读操作,是可以被Cache缓存(如果有的话)的,并不需要操作数据库。增加浏览量这个操作涉及写数据库,而且通常浏览量并不要求很强的一致性和实时性,可以不必等浏览量增加操作执行完成(数据库写成功)就返回。
  • 回答了问题2018-06-08
    golang http server重启过程中如何继续提供服务(优雅重启)
    想到两个方法: 方法一:如果是比较新的内核版本3.9以上,支持SO_REUSEPORT,那么你可以: 启动一个新的进程,也监听相同的端口。 新的进程启动后给老的进程发个信号。 老的进程收到后停止接收新的连接请求(停止Accept,关闭Listen Socket),等所有已经存在的连接...
  • 回答了问题2018-06-07
    shell 如何使用类似于 cmd -D=xxxx 的方式获取参数
    getopts或getopt。
  • 回答了问题2018-06-06
    在Linux系统下,执行sem_timewait(),在等待锁的期间,当前线程会睡眠还是阻塞
    sem_timewait 函数会阻塞当前线程直到拿到锁或超时才会返回。阻塞的实现方式就是休眠当前线程,直到锁释放或者超时后唤醒。超时后这个函数返回继续执行后面的代码,后面的代码逻辑决定后面的行为。
  • 回答了问题2018-06-04
    关于负载均衡的奇怪想法
    不会无穷无尽,因为任何对外提供的服务都是有一个交互的起点。以访问一个网站的主页为例,其起点就是请求DNS,DNS服务器由ISP或大型专业服务公司提供,一般都可以认为这个是100%可靠的。当DNS返回一个地址给用户后,用户请求这个地址,这个地址的可靠性由网站保障,...
  • 回答了问题2018-06-04
    rpc服务器是不是一般是服务器内部交互用的,这样有什么好处?
    RPC(Remote Procedure Call)把进程间(包括跨服务器)的通信过程封装成函数调用方式,隐藏复杂的通信处理细节,方便使用、简化代码;使得调用者可以像调用本地函数那样调用其他进程提供的处理过程。
  • 回答了问题2018-06-03
    python 为什么添加了睡眠1秒的时间代码会影响多线程的执行?
    因为子线程休眠的时候,主线程已经退出了,主线程退出后程序会结束,子线程都会退出,来不及执行打印语句。在主线程可以通过thread.join方法等待所有子线程都退出。
  • 回答了问题2018-06-01
    直接IO和内存映射究竟有何区别?
    Buffer IO就是IO请求经过缓存子系统处理,例如Linux 上的VFS Cache层;写数据会先写入内存,写入内存后就会返回,不等数据刷到磁盘上。读数据会从先尝试从内存中读取,如果内存中命中,就不需要从磁盘上读取了。Buffer IO会带来读写性能的大幅度提升,这和在数据库前...
  • 回答了问题2018-06-01
    对于中间变量是否越详细越好
    一开始写代码,并不需要刻意做这样的优化。提前做这种牺牲代码可维护性、增加复杂度的优化,坏处大于好处。因为它一定会带来一些坏处,但并不确定是否真的带来一些好处。
  • 回答了问题2018-06-01
    []byte("")的默认cap是多少
    我们把程序反汇编,如上,可以看到对于 s := []byte("") 这样的语句,编译器会为我们生成 stringtoslicebyte函数进行从string到slice的转换。这个函数定义在:
  • 回答了问题2018-05-30
    linux cpu高负载,top中没有高占用cpu的进程。
    主要是user用户态占用,可以用perf top看一下热点函数,根据热点函数可以进一步推断可能属于哪个进程或程序。perf工具当前主流的发行版都会有,但如果版本较老可能就没有了。题主最好贴一下系统的版本信息。类似下面这种:
  • 回答了问题2018-05-30
    不知道长度的原始数组可否转为std::initializer_list
    C++标准只规定了编译器可以帮我们把一个{}定义的常量数组转换为一个initializer_list对象,这样接受initializer_list为参数的函数(通常是各种构造函数),就可以接受{},通过这种方式扩展了语法,使我们可以像初始化普通数组那样初始化容器,简化了代码。