内功修炼
一的三次方
这个作者很懒,什么都没留下…
展开
-
系统设计 | golang如何实现服务端高并发设计
关键1.高并发处理,网络连接过多server如何处理2.设计模式,可以扩展,接受不同的规则3.不同客户端消息的处理,如何识别room和user的消息顺序4.代码风格,测试case结果1.耗时10小时完成,覆盖点1,2,未完成3,4复盘1.刚开始思路错了,没聚焦重点,没集中在问题1,反而关注问题22.一直没有跑起来的demo,先把很多代码堆积上,然后才调试的,浪费很多时间3.对g...原创 2020-02-19 11:50:16 · 706 阅读 · 0 评论 -
bash 和 环境变量env
背景工作中,发现很多同事对Linux的env感觉困惑,其实是很简单的东西。例如:ssh登陆机器后无法看到一些env;同事很疑惑;下面结合bash来讲解一下env和bash/shell概念:Bash是一种UNIX shell,就是命令行解释器,也是一种脚本语言;生于1989年,目的是代替Bourne Shell;Bourne Shell:作者是 Stephen Bourn...原创 2019-01-27 20:51:56 · 2281 阅读 · 0 评论 -
Linux进程那些事儿(持续更新)
进程是啥进程 = 运行中的程序进程和程序程序是代码编译链接后的二进制,存储在磁盘中,静态的进程是运行中的程序,运行在内存中,动态变化的进程里有啥可执行的二进制:就是程序内存:分好几个区域,data/bss/堆/栈,记录临时计算结果等文件描述符:指向进程打开的文件进程上下文:寄存器,程序计数器操作系统用PCB记录上面的这些信息进程怎么通信(IPC)下面几种适用大部...原创 2018-12-31 23:08:32 · 171 阅读 · 0 评论 -
java多线程编程 | 生产者消费者问题:Producer-Consumer 上
https://en.wikipedia.org/wiki/Producer–consumer_problem有问题的实现java如何创建线程java线程的状态:New/Runnable/Blocked/Waiting/Time Waiting/Terminatedjava如何唤醒线程public class Buffer {private static Queue q = ...原创 2018-12-16 22:01:17 · 580 阅读 · 0 评论 -
Unix/Linux实践编程 | 如何编写ls(下)
继续讲解如何编写ls -l可以用stat得到文件属性:Mode:100664Links: 1User: 500Group: 120Size: 1106Modetime: 965158604Name: fileinfo.cMode 需要转为-rw-rw-r–编码技术:模式字段是个16位的二进制数,100664是八进制的表示法,方便人们理解;其中后9位,664表示user...原创 2018-12-09 23:23:04 · 235 阅读 · 0 评论 -
深入理解计算机系统| 存储器山
存储器山概念:读吞吐量(read throughout):程序从存储系统读数据的速率成为读吞吐量或者读带宽;单位MB/s空间局部性:Spatial locality refers to the use of data elements within relatively close storage locations.时间局部性:Temporal locality refers to th...原创 2018-12-09 23:07:57 · 3770 阅读 · 1 评论 -
Unix/Linux实践编程 - 如何编写ls(下)
继续讲解如何编写ls -l可以用stat得到文件属性:Mode:100664Links: 1User: 500Group: 120Size: 1106Modetime: 965158604Name: fileinfo.cMode 需要转为-rw-rw-r–编码技术:模式字段是个16位的二进制数,100664是八进制的表示法,方便人们理解;其中后9位,664表示use...原创 2018-12-09 23:05:44 · 122 阅读 · 0 评论 -
Unix/Linux实践编程 - 如何编写ls (上)
文件树Unix如何组织磁盘上的文件?组织成一颗文件树,每个节点是目录或者文件逻辑概念,通过文件树将物理上分离(多个驱动器或者分区)的文件目录无缝连接目录目录是一种特殊文件,有特殊的格式,内容是文件和目录的名字不同于普通文件,目录文件永不为空: .表示当前目录 … 表示上级目录vim ./.././main.cppls*.swpls如何工作Open/read ...原创 2018-12-02 21:08:28 · 1123 阅读 · 0 评论 -
Unix/Linux编程实践 - 文件操作以及提高I/O效率
用时: 60min1.文件的建立与读写Unix系统将数据存放文件中,使用系统调用操作文件creat(filename, mode)open(filename, how) 在进程和内核之间建立一条连接,这个连接就是文件描述符,就像一条进程通向内核的管道;常见错误:文件不存在/文件权限问题/目录权限问题read(fd, buffer, amt),考虑读到文件结尾的错误write(fd, ...原创 2018-11-25 20:41:11 · 360 阅读 · 0 评论 -
软件工程 | UML时序图
概念:这种工具类,概念了解即可,没必要咬文嚼字,主要多看例子,上手去看图和画图;方便梳理复杂的软件流程。时序图(sequence diagram)表示时间序列维度下,对象的交互关系;生命线(lifeline): 垂直的平行线,表示同时存在的对象和进程构建元素:1. 消息同步消息:实线-实心箭头,例如调用子例程异步消息:实线-开放箭头,例如多线程应用,事件驱动的应用,面向消息的...原创 2019-01-13 23:03:08 · 2655 阅读 · 0 评论 -
关于HTTP3的一篇文章
1.BackgroundGoogle is in control of future web protocol development, from SPDY that was eventually standardized as HTTP/2 to QUIC being standardized as HTTP/3. HTTP/2 cannot be seen sniffing with t...原创 2018-11-25 20:57:46 · 136 阅读 · 0 评论