3 gochenguowei

尚未进行身份认证

我要认证

在工作之余,记录下自己学习的东西,并收藏一些好的文章。

等级
TA的排名 4w+

随机数产生转换-根据(1,5)随机数生成器,生成(1,7)之内的随机数

转自:https://blog.csdn.net/zheng0518/article/details/509298261. 题目 给定一个随机数生成器,这个生成器能均匀生成1到5(1,5)的随机数,如何使用这个生成器生成均匀分布的1到7(1,7)的数?2. 思路 方法一:生成两个(1,5)的随机数,这样一共是25种情况,注意这两个数是有顺序的,从这25种情况中,取前21种,每三种代表(1,7)中的一个数字,如果取到的是这21种以外的情况,丢掉重新取。 方法二:生成三个(1,...

2020-05-10 12:48:02

内存寻址之段页存储机制分析

转自:https://blog.lecury.cn/2017/05/05/%E5%86%85%E5%AD%98%E5%AF%BB%E5%9D%80%E4%B9%8B%E6%AE%B5%E9%A1%B5%E5%AD%98%E5%82%A8%E6%9C%BA%E5%88%B6%E5%88%86%E6%9E%90/背景学习操作系统这门课的时候,曾不止一次的接触到操作系统的段页式管理机制,但当是都是浅尝辄止,不知道操作系统为啥要有这个机制。如今时间过去很久,关于这个机制的背后的原理和实现机制,早已忘记很久了

2020-05-09 17:40:32

线程的查看以及利用gdb调试多线程

转载自:https://blog.csdn.net/zhangye3017/article/details/803824961. 线程的查看首先创建两个线程:#include <stdio.h>#include <unistd.h>#include <pthread.h>#include <stdlib.h>#include &l...

2020-05-08 14:59:55

grace(热重启)剖析

Beego中的热重启是以一个单独的模块二存在的,你可以在其他项目单独使用,例如:import( "log" "net/http" "os" "strconv" "github.com/astaxie/beego/grace" ) func handler(w http.ResponseWriter, r *http.Request) { ...

2020-05-06 13:42:32

Mysql 的慢查询日志开启

慢查询日志其实就是将mysql 的 sql 执行过程中执行时间超过阈值的sql 语句记录下来,方便后续优化。而阈值的大小由 long_query_time 来设置,默认是10秒。 在默认的情况下,mysql 的慢查询日志事关闭的,需要人工手动开启。mysql> show variables like 'long_query_time'\G;*******...

2019-10-21 21:28:26

乐观锁和悲观锁

前言乐观锁和悲观锁问题,是出现频率比较高的面试题。本文将由浅入深,逐步介绍它们的基本概念、实现方式(含实例)、适用场景,以及可能遇到的面试官追问,希望能够帮助你打动面试官。目录一、基本概念二、实现方式(含实例) 1、CAS(Compare And Swap) 2、版本号机制三、优缺点和适用场景四、面试官追问:乐观锁加锁吗?五、面试官追问:CA...

2019-09-25 08:51:05

Go 高性能编程技巧

1.在高并发队列任务分发的场景中RingBuffer比Channel的性能更好2.defer功能不是静态编译时提供的,而是运行时提供的,所以使用defer会产生一些额外的性能开销(了解就好,该用还是得用)3.encoding/json序列化是通过反射机制实现的,性能很差,可以使用ffjson生成encode/decode代码来提升性能。如果可能,使用MsgPack替代JSON,因为Msg...

2019-09-17 22:03:44

go 字符串string 和 字符数组[]byte 的高效转换

在我们的程序里面基本都写成如下的转换var a = []byte("hello world")var b = string(a)这样的强制类型转换其实是调用底层的copy 函数进行转化,也就是说需要在内存中进行拷贝。这如果并发量达到千万级别,这样的转换是很耗性能的。那么我们是否可以使用 unsafe.Point() 这样的指针直接转换呢?首先我们的知道 string 和 []byt...

2019-09-16 22:35:25

类似微博的消息推送的两种实现方式

我们在微博上订阅并关注某些人的微博,这些关注的人发布一条微博的时候,我们打开微博浏览会看到一条条消息按照时间的逆序在我们的首页展示出来,我们可以不停地往下阅览这些消息。那么从消息发布到阅览,这背后的技术是怎么实现的呢?下面我们来一看究竟。方案一:在消息发布的时候插入同一个全局的消息主表中。当用户查看时间时,首先查找所有关注的对象,列出这些人的所有消息,最后以时间为序来排序合并。大概的关系型数据...

2019-09-08 11:40:37

redis的LRU算法实现

http://www.cnblogs.com/WJ5888/p/4371647.htmlRedis:https://github.com/zwjlpeng/Redis_Deep_ReadRedis中采用两种算法进行内存回收,引用计数算法以及LRU算法,在操作系统内存管理一节中,我们都学习过LRU算法(最近最久未使用算法),那么什么是LRU算法呢LRU算法作为内存管理的一种有效算法,其含...

2019-03-31 01:00:32

使用GDB调试GO

转自:https://blog.csdn.net/gua___gua/article/details/50481534GDB是FSF(自由软件基金会)发布的一个强大的类UNIX系统下的程序调试工具。使用GDB可以做如下事情:启动程序,可以按照开发者的自定义要求运行程序。 可让被调试的程序在开发者设定的调置的断点处停住。(断点可以是条件表达式) 当程序被停住时,可以检查此时程序中所发生的...

2019-03-10 15:13:01

go net.http 每次都查询dns的导致的问题

在线上部署的一个程序,在某天突然在一天内出现多次 “dial tcp: lookup xxxx.com on 223.x.x.x:53: read udp 180.x.x.x:7792->223.x.x.x:53: i/o timeout” 的问题,导致线上告警触发了多次。后面查找问题,发现 go 每次发起 http 请求都会发起一个 dns 请求来进行域名解析,而我们服务器的dns...

2019-03-03 16:38:07

编程珠玑变位词算法

转自:https://blog.csdn.net/workformywork/article/details/16963613问题描述给定一个英语字典,找出其中的所有变位词集合。例如,“pots”,“stop”和“tops”互为变位词,因为每一个单词都可以通过改变其他单词中的字母顺序来得到。解决思路首先想到的方法应该是使用一个两层循环,遍历字典,然后再比较每个单词是否是变位词,在比较单...

2019-03-03 12:21:27

redis 4.0以上的module (一)

前两天查看redis的官方文档,发现在redis 4.0以上,redis支持了可扩展了module,让用户可以自己根据需求自己扩展redis相关的功能了。所以趁周末,查看了官方的module文档,写了个简单的demo。1. 下载并安装好 redis 4.0 以上的版本 (具体的安装步骤百度)2. 新建一个目录并包含 redismodule.h 文件,里面包含了 redis 相关的操作的函数...

2018-12-23 21:55:44

openresty+lua 实现简单的灰度发布

openresty 是在nginx之上集成了lua模块的第三方服务器,我们很容易基于lua对openresy进行简单的二次开发。下面就是一个简单的openresty+lua 的灰度发布的测试demo,简单地来说就是通过client的ip来访问不同的服务器。nginx.conf 配置文件如下:upstream client1 { server 127.0.0.1:8080; }...

2018-12-16 22:12:29

nc 用法

转自:https://www.cnblogs.com/nmap/p/6148306.html什么是ncnc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具nc的作用(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口(2)端口的扫描,nc可以作为client发起TCP或UDP连...

2018-12-05 23:52:37

Linux 技巧:让进程在后台可靠运行的几种方法

转自:https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问...

2018-12-04 21:06:40

nginx https 配置

转自:https://www.cnblogs.com/jingxiaoniu/p/6745254.html一、HTTPS简介1.https简介HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据2.https协议原理首先,客户端与服务器建立...

2018-12-02 23:02:44

sublime中换行符替换成“,”

command + option + ffindwhat 中输入:command + shift + enter在Replace With 中输入 ","点击 replaceall

2018-10-21 21:38:02

MySQL 导入和导出数据

转自:https://blog.csdn.net/myron_sqh/article/details/13016945一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1、导出数据和表结构:mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql#/usr/local/mysql/bin/   mysqldump -uroot -p...

2018-10-19 09:41:20

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。