240 发简信
  • 索引

    并发编程 线程的等待 阻塞队列和Condition Pool

  • ThreadLocal<T>

    ThreadLocal<>适用于什么场景? 每个线程都有自己的拷贝实例,其他线程不能访问。 方便在线程内部传递。其实可以在线程内部new一个对象来实现这个需求,但是这样会产生...

  • 120
    「Git」合并多个 Commit

    在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。那么我们为了避免太多的 comm...

  • 120
    一文教会你如何写复杂业务代码

    了解我的人都知道,我一直在致力于应用架构和代码复杂度的治理。 这两天在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。针对该命...

  • 关于HTTP Connection的几个问题

    1. 现代浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开? 在 HTTP/1.0 中,一个服务器在发送完一个 HTTP 响...

  • 120
    ping命令

    A电脑(192.168.2.135)发起ping请求,ping 192.168.2.179 A电脑广播发起ARP请求,查询 192.168.2.179的MAC地址。 B电脑应...

  • zooKeeper基础(二)

    ZooKeeper是一个分布式协调系统,应用广泛,其功能有:服务发现配置管理分布式锁分布式领导选举zookeeper是一个树形结构,类似Linux的文件系统,对每个节点提供监...

  • Protocol Buffer的编码

    IO离不开编码,因为要节约空间。varint是一种紧凑型编码。它用一个或多个字节来表示一个数字,值越小的数字使用越少的字节数。这能减少用来表示数字的字节数。Varint 中的...

  • 动手玩protocol buffers

    我记得第一次编译thrift文件是运行一个脚本,可能是处于好奇心吧,看了看脚本里的内容,大概只有一行,但是是没有工程意识去认真研究。所以对rpc的认知,还是停留在纸面上。这种...

  • 120
    Redis Clusters

    使用redis处理大量数据,一定会用到集群,一般有三种实现方式: 官方clusters:无中心化设计,不好升级,缺乏最佳实践。 proxy分片:Codis是代表,通过Prox...

  • 实战(一)

    一个任务:从数据库中读取50行数据,要求某列不能重复,把结果保存到本地文件中。首先看SQL怎么写。 如果不能写出SQL,只能查出大量数据,然后去重。问题来了,怎样根据某一列去...

  • 洗牌算法

    音乐软件中的随机播放算法是怎样实现的? 洗牌算法(Shuffle) 生成一个随机数(Random) 这里给出洗牌算法的一个实现,跟蓄水池抽样非常类似 参考:洗牌算法分析总结

  • 120
    内存映射文件原理

    内存映射文件,是指文件和内存逻辑地址映射起来。mmap()返回一个指针ptr,可以通过指针进行读写,而不必通过read()或者write()ptr指向一个逻辑地址,需要MMU...

  • kafka核心问题

    一 、 kafka是什么?kafka是一个基于发布-订阅模式的MQ,可以用来解耦、削封、异步等功能。 二、kafka的架构是怎样的?broker:kafka服务器messag...

  • 120
    Zero-Copy

    服务器将硬盘上的文件,传给用户,需要几次拷贝?解决这个问题,需要明白具体的工作流程是什么? 关于哪个步骤需要拷贝: 把磁盘中文件拷贝到kernel buf 把kernel b...

  • maven点滴

    工程师的一大乐趣就是打磨工具,好比剑客磨剑,战士擦枪。利器会带来快感,因为能高效率地生产。自己从工作后就接触maven了,当时是有些抵触的。因为自己欠缺工程师思维,对工具理解...

  • git

    使用git add . 代替 git add *使用git add之后,怎样恢复?