- 博客(35)
- 资源 (4)
- 收藏
- 关注
原创 Go语言channel探究
这里写目录标题前言一、channel 简介同步和通信通过共享内存通信通过通信共享内存二、channel的基本使用声明初始化接收元素值发送元素值空结构体channel关闭通道通道的操作特性单向通道for语句与channelselect语句select 分支选择规则select 的常用用法三、协程的同步什么是同步感受流程控制的重要性等待单个协程结束使用信道限制最大协程数使用通道传递数据其它的同步工具四、channel解决并发问题的思路流水线模型channel和mutex的选择1:使用for-range退出2:使
2020-07-06 19:05:02 1733 1
原创 golang 限制最大协程数
这是上线的代码,package mainvar ( maxGoroutinueNum = 20)func main() { //池子 ch := make(chan bool, maxGoroutinueNum) //塞入20个牌子 for i := 0; i < count; i++ { ch <- true } for _ , v := range openApiRequestListWithRes { //取出一个,如果20个用完了,
2020-05-12 01:12:18 3716
原创 redis 的几种数据类型 & 各自底层实现
对象类型与编码redis的key和value 都是对象。redis对象有五种:类型常量对象的名称REDIS_STRING字符串对象REDIS_LIST列表对象REDIS_HASH哈希对象REDIS_SET集合对象REDIS_ZSET有序集合对象key总是字符串对象,value有可能是以上五种。对象的内部结构typedef stru...
2020-04-27 16:42:50 1285
原创 简单了解zookeeper
相关问题:http://ddrv.cn/a/553254配置同步服务etcd和zookeeper,选哪个呢?https://baijiahao.baidu.com/s?id=1599455829515318791&wfr=spider&for=pc是什么?分布式数据一致性的解决方案。分布式应用程序可以基于它实现:数据发布/订阅。 负载均衡 命名服务...
2020-04-21 01:21:52 162
原创 first-class、second-class、third-class
first-class:可以被赋值给一个变量 可以被嵌入到数据结构中 可以作为参数传递 可以作为值被函数返回second-class:不可以赋值给变量 可以作为参数传递 不能被函数返回third-class: 作为参数都不行...
2020-04-16 17:08:59 564
原创 Redis 分享
是什么?Redis 是当前最受欢迎的非关系型数据库之一。它是使用 C 语言编写的开源项目,支持多种数据类型、支持网络、基于内存、可选持久性的 Key-Value 数据库。它提供多种语言的 API 支持,应用十分广泛。Redis 的优点快。非常快。Redis 使用C语言编写,它基于内存采用单线程,据官方提供的数字来说可达 10w QPS。1. 完全基于内存,大部分的...
2020-04-12 16:33:55 121
原创 彻底理解同步异步阻塞与非阻塞
彻底理解同步异步阻塞与非阻塞前言用户空间内核空间系统调用用户态内核态系统IO阻塞非阻塞同步异步功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流...
2019-11-26 16:58:26 155
原创 如何组织接口的数据格式
eg:{ "status": 200, "msg": "成功", "data": { "ids": [ "polaris_dashboard_home_achievement_head_total", "polaris_dashboard_home_achievement_head_car_source", &
2018-08-21 11:58:03 292
原创 innodb B+树
InnoDB储存引擎中最常用的索引是B+ 树索引。了解 B+ 树之前,需要先了解二叉查找树。B+ 树是通过二叉查找树,再由平衡二叉树、B树演化而来。二叉查找树中,左子树的键值总是小于根的键值,右子树相反。因此可以通过中序遍历得到键值的顺序输出。二叉查找树可以任意构造,但显然有些构造方法查找效率较低,因此引出了新的定义,平衡二叉树。平衡二叉树:在二叉树的基础上构建的,但其必须满足任何节点的左右子树的...
2018-04-24 19:19:23 324
原创 二叉树遍历(前序、中序、后序)
前序遍历:根结点 ---> 左子树 ---> 右子树中序遍历:左子树---> 根结点 ---> 右子树后序遍历:左子树 ---> 右子树 ---> 根结点层次遍历:仅仅需按层次遍历就可以比如下面的二叉树:前序遍历:1 2 4 5 7 8 3 6 中序遍历:4 2 7 5 8 1 3 6后序遍历:4 7 8 5 2 6 3 ...
2018-04-24 18:16:12 407
原创 php 的 finally 你了解多少
finally 是在 php5.5 版本中被引入的关键字。finally 并不是PHP的原创, C#, Javascript, Java..等等其他语言都有, PHP的finally和其他的语言相似。关于 try catch finally 语法,我们主要关心它的执行顺序:try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 } ca...
2018-04-19 11:43:21 2877
原创 mysql 用户权限管理
mysql 中,用户表 mysql.user,主键是 host&user 两个字段的联合主键。更改用户权限主要使用grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option;flush privileges;库名·表名 为 *.* 时,代表赋予该用户所有库和所有表的权限;如果对应的 用...
2018-04-11 16:38:00 118
原创 docker 配置 php 时的问题
使用 docker pull php 拉取的镜像是没有安装php-fpm的可进入https://hub.docker.com/r/_/php/?spm=5176.8351553.8577797.39.4c0619919tSqHY查看php的所有tag发现了带有fpm的标签,有带有cli的标签而docker pull php:7.2-fpm 拉取镜像才装有php-fpm。最后不要忘记启动袄 dock...
2018-04-08 23:09:34 324
原创 docker 配置nginx
拉取镜像docker pull nginxdocker images nginx 查看显示镜像先随便创建一个容器,然后进入容器观察目录结构docker run -p 80:80 --name mynginx-d nginx 创建mynginxdocker exec -itmynginx/bin/bash发现主配置为 /etc/nginx/nginx.conf它的错误文件放在了var/log/ngi...
2018-04-05 18:18:46 330
原创 mysql 因并发操作导致的丢失更新
丢失更新产生的情况 1. 事务T1查询出一行数据,并显示给User1。 2. 事务T2也查询该行数据,并显示给User2。 3. User1修改这行记录,更新数据库并提交。 4. User2修改这行记录,更新数据库并提交。 在这个过程中,用户User1的修改更新操作“丢失”了。 如何避免 要避免丢失更新,需要让这种情况下的事务变成串行操作,避免并发操作。在上述四种的第1种情...
2018-03-23 15:22:46 1873
原创 有趣的正则-案例实战讲解
案例1: $index = "users[info][name]"; $count = preg_match_all('/(?:^[^\[]+)|\[[^]]*\]/', $index, $matches); print_r($matches);结果:Array( [0] => Array ( [0] => use
2018-01-30 16:12:19 194
原创 字符编码
经常遇到 UTF-8、Unicode、ASCII 这些字符编码,以前从没深究过,甚是惭愧。现在终于弄懂了这些字符编码的来龙去脉,以及一些历史遗留问题,总结下来以备忘。ANSII 编码:一个字节组合出256(2的8次方)种不同的状态,在最早期的时候,美国人用,用前127个表示出包括英文字符、标点、控制码等。这样用一个字节表示一个字符,这个方案叫做 ANSII 编码。GB2312
2018-01-29 16:55:24 149
原创 位运算
$a = 98989265;$k = 0;while ($a & ~(1 << $k)) { $a = $a & ~(1 << $k); $k++;}echo $a.' '.$k;//67108864 26 也及2的26次方其中 $a = $a & ~(1 另 $a = $a | (1
2017-11-28 17:47:23 174
原创 用javascript序列化表单
function serialize(form) { var len = form.elements.length;//表单字段长度;表单字段包括<input><select><button>等 var field = null;//用来存储每一条表单字段 var parts = [];//保存字符串将要创建的各个部分 //遍历每一个表单
2017-04-19 11:59:02 432
原创 用javascript实现类似jquery的ajax请求
var Ajax = { get: function (url, fn) { var obj = new XMLHttpRequest(); // XMLHttpRequest对象用于在后台与服务器交换数据 obj.open('GET', url, true); obj.onreadystatechange =
2017-04-19 11:57:02 437
原创 javascript中var=a=b=c=2代表什么
(function(d){ var h = hapj = function(u){ }; h.a = []; h.c = function(){};})(document);hapj.c();//可以在此调用c函数为什么在外部可以调用,对于新手来讲会有点难以理解,结合下面的例子来讲解函数一: function show(){ var
2017-04-17 19:10:36 1961
原创 win7系统 phpStorm Xdebug 调试php
在之前调试php代码的时候,用的都是varexport,vardump对变量进行输出,调试起来相当不方便。尤其是遇到ajax异步调用接口的时候,需要先把数据返回到前端,然后在前端对返回的变量进行console.log,严重影响工作效率。 所谓磨刀不误砍柴工,我花了点时间查了一下关于php的调试方法。下载地址:https://xdebug.org/download.php 下载对应版本的XDebug
2017-01-23 13:56:14 502
原创 php中正则表达式的分组和命名
示例1: $regex='#^/type/(\w+)/id/([0-9]+)$#i'; $str='/type/topic/id/11'; if(preg_match($regex,$str,$matches)){ var_export($matches); }result:array ( 0 => '/type/topic/id/11', 1 => 'topic'
2017-01-05 15:07:01 2360
原创 laravel 队列的驱动配置
在测试消息队列的时候发现一直是同步执行,很小的一个细节,不知道的话有可能困扰很久,比如笨蛋如我。我使用redis驱动,原来只在config/queue.php 修改 'default' => env('QUEUE_DRIVER', 'redis') 不够,需要在 .env配置文件中进行修改QUEUE_DRIVER=redis 。好了,终于正常了。
2016-12-29 23:06:00 1133
转载 查漏补缺ubuntu之github
安装git:sudo apt-get install git设置用户名:git config --global user.name "Your Name Here". 设置邮箱:git config --global user.email"mail@example.com"下面新建一个工程目录:mkdir ~/Hello-World 进入:cd ~/Hello_World 初始化一个空
2016-12-27 14:24:55 222
原创 对于有趣的php引用的探索
今天在看CI源码的时候,对于里面涉及的引用起了兴趣。接下来让我在php 7.0.3的基础上来对其进行初步探索。这是我们需要的类:class Test{ public $data; public function __construct($d) { $this->data=$d; }}下面进行演示:$a=new Test('1');$b=$a;$
2016-12-26 11:36:49 227
原创 MarkDown用法示例
csdn的编辑界面当中已经提供了很详细的语法帮助了,如下图。下面我来把常用的语法依依实践一遍当做练习。 1. 标题在文字前面书写不同数量的#可以文成不同的标题,代码如下:# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题效果掩饰如下:一级标题二级标题三级标题四级标题五级标题六级标题此外用等号和减号也可以进行标题书写,减号以及等号的数量不
2016-12-25 03:16:50 282
原创 PDO错误与错误处理
PDO错误处理的三种模式:引用->【1.PDO::ERRMODE_SILENT此为默认模式。 PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象。如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的 PDOStatement::errorCode() 或 PDOStatement::er
2016-12-20 02:51:15 1185
原创 laravel 服务类的自动注入
当你需要一个外部类,而这个外部类的实例化过程仅需要$service=new SomeService();既不需要传参数,也不依赖于别的类,那么你无需要显式的创建绑定。直接在你想用的地方用即可,laravel会帮你自动注入的。use App\Mylib\SomeService;class TestController extends Controller{ public
2016-12-12 20:51:04 1090
原创 php-多目录自动加载
//向自动加载目录列表中添加目录function classpath($path){ //目录之间用冒号/分号分隔 set_include_path(get_include_path().PATH_SEPARATOR.$path);}//添加自动加载路径 cute_classpath('core/');cute_classpath('app/'
2016-11-27 23:31:28 311
原创 旋转坐标的计算
坐标旋转的计算:已知旋转中心点(centerX,centerY)、一个物体、旋转的半径radius和角度angle。使用基本的三角学围绕中心点放置物体,设置旋转的角速度Vr来控制旋转角度的增加或减少。计算公式为:angel+=V;ball.x=centerX+Math.cos(angle)*radius;ball.y=centerY+Math.sin(angle)*radius;多属性情况下只知
2016-01-12 19:43:01 4401
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人