自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (4)
  • 收藏
  • 关注

转载 多线程死锁的产生以及如何避免死锁

多线程死锁的产生以及如何避免死锁原创 2016年07月13日 11:07:45标签:多线程 /死锁34604一、死锁的定义多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。下面我们通过一些实例来说明死锁现象。先看生活中的一个实例,2个人一起吃饭但...

2018-04-17 23:31:17 128

转载 关于memcache和Redis的区别和总结

关于memcache和Redis的区别和总结Redis和Memcached整体对比1)性能对比:由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起 Memcached,还是稍有逊色。2)内存...

2018-04-17 21:03:23 373

转载 nginx与php-fpm通信的两种方式

 nginx与php-fpm通信的两种方式简述在linux中,nginx服务器和php-fpm可以通过tcp socket和unix socket两种方式实现。unix socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。这种方式需要再nginx配置文件中填写php-fpm的pid文件位置,效率要比tcp socket高。tcp socket的优点是可以跨服务器,当ngin...

2018-04-17 19:37:48 367

转载 Memcached 和 Redis 分布式锁方案

Memcached 和 Redis 分布式锁方案分布式缓存,能解决单台服务器内存不能无限扩张的瓶颈。在分布式缓存的应用中,会遇到多个客户端同时争用的问题。这个时候,需要用到分布式锁,得到锁的客户端才有操作权限。Memcached 和 Redis 是常用的分布式缓存构建方案,下面列举下基于Memcached 和 Redis 分布式锁的实现方法。Memcached 分布式锁Memcached 可以使用...

2018-04-15 23:00:38 156

转载 Memcached 和 Redis 分布式锁方案

Memcached 和 Redis 分布式锁方案分布式缓存,能解决单台服务器内存不能无限扩张的瓶颈。在分布式缓存的应用中,会遇到多个客户端同时争用的问题。这个时候,需要用到分布式锁,得到锁的客户端才有操作权限。Memcached 和 Redis 是常用的分布式缓存构建方案,下面列举下基于Memcached 和 Redis 分布式锁的实现方法。Memcached 分布式锁Memcached 可以使用...

2018-04-15 22:57:30 183

转载 数据库事务的四大特性以及事务的隔离级别

数据库事务的四大特性以及事务的隔离级别  本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。  如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能...

2018-04-15 18:41:59 123

转载 Yii2中的代码自动加载机制

Yii2中的代码自动加载机制yii php Darkgel 2017年08月04日发布赞  |   1收藏  |  2805 次浏览1.基本知识Include与require 的作用:当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。Include与r...

2018-04-15 18:37:44 700

转载 二叉树--判断一棵树是否是完全二叉树

二叉树--判断一棵树是否是完全二叉树原创 2017年07月27日 19:16:05标签:二叉树 /判断完全二叉树472完全二叉树: 前n-1层都是满的,第n层如有空缺,则是缺在右边,即第n层的最右边的节点,它的左边是满的,右边是空的。如何判断一个树是否为完全二叉树? 思路一:将所有的结点全部押入队列中,空也压入,每次判断队列的头如果队列头为空了则跳出循环,如果此后队列中还有元素则不是完全二叉树。b...

2018-04-15 15:47:23 205

转载 总结深度优先与广度优先的区别

3总结深度优先与广度优先的区别1、区别       1) 二叉树的深度优先遍历的非递归的通用做法是采用栈,广度优先遍历的非递归的通用做法是采用队列。       2) 深度优先遍历:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。要特别注意的是,二叉树的深度优先遍历比较特殊,可以细分为先序遍历、中序遍历、后序遍历。具体说明如下:先序遍历:对任一子树,先访问根,然后遍历其左子树...

2018-04-15 15:32:13 19828 1

转载 二叉树常见面试题(进阶)

12二叉树常见面试题(进阶)一、常见题型1. 求两个节点的最近公共祖先;2. 求二叉树中最远的两个节点的距离;3. 由前序遍历和中序遍历重建二叉树(如:前序序列:1 2 3 4 5 6 - 中序序列 :3 2 4 1 6 5);4. 判断一棵树是否是完全二叉树 ;5. 将二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向;6.求二叉树的宽度;7. 判断一棵二叉...

2018-04-15 14:44:50 118

转载 链表(上:链表反转)

链表(上:链表反转)1. 逆序打印链表(单链表)给定单链表,从尾到头打印每个节点的值,不同的值之间用空格隔开。比如:1>2>3>4>5输出:5 4 3 2 1用非递归以及递归两种算法实现。非递归思路示例代码:时间空间都为O(n)递归思路其实就是通过函数栈,不断地递归调用递归函数并把p-next传进去,等p-next=null开始弹函数栈。达到逆序输出的结果:2. 链表的最大...

2018-04-15 14:42:34 198

转载 分布式调用跟踪系统的设计和应用

分布式调用跟踪系统的设计和应用一、为什么需要分布式调用跟踪系统随着分布式服务架构的流行,特别是微服务等设计理念在系统中的应用,业务的调用链越来越复杂,可以看到,随着服务的拆分,系统的模块变得越来越多,不同的模块可能由不同的团队维护,一个请求可能会涉及到几十个服务的协同处理, 牵扯到多个团队的业务系统,那么如何快速准确的定位到线上故障?同时,缺乏一个自上而下全局的调用id,如何有效的进行相关的数据分...

2018-04-15 14:39:26 213

转载 分布式会话跟踪系统架构设计与实践

分布式会话跟踪系统架构设计与实践美团点评技术团队用技术连接人和服务,点亮精彩生活99 人赞了该文章本文整理自美团点评技术沙龙第08期:大规模集群的服务治理设计与实践。美团点评技术沙龙由美团点评技术团队主办,每月一期。每期沙龙邀请美团点评及其它互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域。目前沙龙会分别在北京、上海和厦门等地举行,要参加下一次最新沙龙活动?赶快关注微信公众号“美团点...

2018-04-15 14:38:39 127

转载 go语言实现快速排序

go语言实现快速排序快速排序作为分治法的经典算法,原理自不必多说,我只是用go语言直接实现了,当然可以不用中间切片,但是这种写法最能体现快速排序的分治思想。[plain] view plain copypackage main    import "fmt"    // 快速排序(直接)实现  func quickSort(s []int) []int {      if len(s) < ...

2018-04-12 21:34:46 103

转载 golang silce/append的使用

golang silce/append的使用这是一个创建于 2015-08-13 11:00:12 的文章,其中的信息可能已经有所发展或是发生改变。初始化切片可以通过数组来初始化,也可以通过内置函数make()初始化 .初始化时len=cap,在追加元素时如果容量cap不足时将按len的2倍扩容 查看示例代码,在线运行示例代码s :=[] int {1,2,3 } 直接初始化切片,[]表示是切片类...

2018-04-12 21:34:11 2642

转载 链表(上:链表反转)

链表(上:链表反转)1. 逆序打印链表(单链表)给定单链表,从尾到头打印每个节点的值,不同的值之间用空格隔开。比如:1>2>3>4>5输出:5 4 3 2 1用非递归以及递归两种算法实现。非递归思路示例代码:时间空间都为O(n)递归思路其实就是通过函数栈,不断地递归调用递归函数并把p-next传进去,等p-next=null开始弹函数栈。达到逆序输出的结果:2. 链表的最大...

2018-04-11 23:24:13 247

转载 关于PHP中命名空间和spl_autoload_register函数的关系说明

关于PHP中命名空间和spl_autoload_register函数的关系说明794在我们使用命名空间的时候,只完成了一种逻辑关系的独立。意思也就是说,对于PHP引擎来说,当他看到 namespace myclass;的时候,可以知道,此名称以下定义的类库拥有了一个独立的空间,名字叫做 myclass 。而同样的类库名称不能在同一个明明空间中,意思类似于,同一个文件夹下,不能创建相同名称的两个文件...

2018-04-11 16:05:11 171

转载 如何使用composer的autoload来自动加载自己编写的函数库与类库?

如何使用composer的autoload来自动加载自己编写的函数库与类库?composer的出现真是让人们眼前一亮,web开发从此变成了一件很『好玩』的事情,开发一个CMS就像在搭积木,从packagist中取出『积木』搭建在自己的代码中,一点一点搭建出一个属于自己的王国。从此以后我基本就抛弃了require和include函数,一个项目中,这两个函数只可能出现一次,那就是require '.....

2018-04-11 15:33:21 435

转载 利用awk分析网站日志实例

利用awk分析网站日志实例网站日志分析篇1、获得访问前10位的ip地址:cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -102、获取访问次数最多的文件或页面,取前20个:cat access.log | awk '{print $11}' | sort | uniq -c | sort -nr | head...

2018-04-11 14:38:59 772

转载 进程间通信 和 线程间同步

进程间通信 和 线程间同步前经常搞混,所以记录下来。进程间通信主要是指多个进程间的数据交互。而线程间同步主要指维护多个线程之间数据准确、一致性。一.进程间通信主要有以下几种方式:管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道(named pipe):有名管道也是半双工的通信方式,但是它允许无亲缘关系进...

2018-04-09 23:39:48 204

转载 浅析php curl_multi_*系列函数进行批量http请求

浅析php curl_multi_*系列函数进行批量http请求何起:  一系列 数量很大 数据不热 还希望被蜘蛛大量抓取的页面,在蜘蛛抓取高峰时,响应时间会被拉得很高。  前人做了这样一个事儿:页面分3块,用3个内部接口提供,入口文件用curl_multi_*系列函数抓取3个内部接口的内容,拼成一个页面。  怀疑这样做会有影响性能的可能。   故学而分析之。 看了php官方手册,总结批量调用过程...

2018-04-09 10:55:43 202

转载 PHP也玩并发,巧用curl 并发减少后端访问时间

首先,先了解下 php中的curl多线程函数:# curl_multi_add_handle# curl_multi_close# curl_multi_exec# curl_multi_getcontent# curl_multi_info_read# curl_multi_init# curl_multi_remove_handle# curl_multi_select一般来说,想到要用这些函...

2018-04-09 10:49:16 1755

转载 Gopher面试中的Coding

Gopher面试中的Coding从四月份下半月开始,陆陆续续面试了几家公司,都是golang的岗位。每一次面试,侧重点都会有不同,有的会直接给过来一道试题, 然后边解题,边讲述自己的思路,然后面试官根据你的思路和你交流沟通;有的呢,让讲述自己最近做过的项目,遇到的难点, 自己怎么解决的问题思路,而无独有偶的呢,这样的面试中,都要需要展示编码能力。这篇文章就把自己最近面试中遇到的每一个编程问题, 分...

2018-04-08 16:13:14 161

转载 Golang开发支持平滑升级(优雅重启)的HTTP服务

Golang开发支持平滑升级(优雅重启)的HTTP服务 收藏【腾讯云】买域名送云解析+SSL证书+建站!>>>   前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。使用Golang的系统包开发HTTP...

2018-04-08 14:31:43 795

转载 OAuth2.0认证和授权机制讲解

OAuth2.0认证和授权机制讲解参考文档 :https://segmentfault.com/a/1190000005357718https://www.tianmaying.com/tutorial/oAuth-login第一章.OAuth2.0 介绍OAuth认证OAuth认证是为了做到第三方应用在未获取到用户敏感信息(如:账号密码、用户PIN等)的情况下,能让用户授权予他来访问开放平台(主...

2018-04-06 22:12:41 342

转载 分布式锁_Redis_Setnx_getSet

分布式锁_Redis_Setnx_getSet使用Redis-setnx-getset实现分布式锁实现原理:Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。redis的SETNX命令可以方便的实现分布式锁。SETNXSETNX key value将 key 的值设为 value,当且仅当 key 不存在。 若给定的 key 已经存在,...

2018-04-05 16:11:51 307

转载 分布式锁的一点理解

分布式锁的一点理解以下内容为目前自己理解的总结,如有错误请大家指正。什么是锁在单进程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量。而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标...

2018-04-05 16:07:17 98

转载 Golang 垃圾回收剖析

Golang 垃圾回收剖析2017-06-18 PHP技术大全若文章排版不清或需要查看文中链接,请点击文章左下角的“阅读原文”Golang 从第一个版本以来,GC 一直是大家诟病最多的。但是每一个版本的发布基本都伴随着 GC 的改进。下面列出一些比较重要的改动。v1.1 STWv1.3 Mark STW, Sweep 并行v1.5 三色标记法v1.8 hybrid write barrier2. ...

2018-04-04 10:59:19 373

转载 golang 垃圾回收机制

golang 垃圾回收机制 golang GC 垃圾回收 用任何带 GC 的语言最后都要直面 GC 问题。在以前学习 C# 的时候就被迫读了一大堆 .NET Garbage Collection 的文档。最近也学习了一番 golang 的垃圾回收机制,在这里记录一下。常见 GC 算法趁着这个机会我总结了一下常见的 GC 算法。分别是:引用计数法、Mark-Sweep法、三色标记法、分代收集法。1....

2018-04-03 23:30:12 210

转载 Golang -- 字节切片

Golang -- 字节切片xiaorenwuzyh · 2015-03-26 11:00:16 · 17565 次点击 · 预计阅读时间 8 分钟 · 2分钟之前 开始浏览    这是一个创建于 2015-03-26 11:00:16 的文章,其中的信息可能已经有所发展或是发生改变。Go 语言标准库 bytes ,实现了对字节数组的各种操作。 It is analogous to the fac...

2018-04-03 20:13:08 2001

转载 golang byte和rune的区别 或者是string知识

golang byte和rune的区别原创 2018年01月19日 15:46:16549       我们知道golang中的string类型存储的字符串是不可变的, 如果要修改string内容需要将string转换为[]byte或[]rune,并且修改后的string内容是重新分配的。       那么byte和rune的区别是什么呢?其实很简单,直接看golang源码既可:    一个是ui...

2018-04-03 20:10:13 1076 1

转载 golang中反转(reverse)字符串

golang中反转(reverse)字符串 Golang  2年前 (2016-05-06)  1291浏览  0评论在写循环左移算法的时候,需要对字符串进行反转,尝试从strings包进行查找,没有找到reverse字眼的方法,难道golang语言没有带反转的方法。如果要自己实现这个方法,从常理考虑可以申请一个新空间,然后将字符串的从尾到头依次填充该空间,最后新空间的内容就是反转后的结果了,这个...

2018-04-03 16:04:21 11125

secureCRT8.0.4

链接服务器使用rz sz资源 。链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源链接服务器使用rz sz资源

2018-05-25

charles破解版win-mac

破解charles

2017-04-24

C++帮助手册/文档

这里有c和c++的所有手册,还有一些基本的理论知识,很好的哦,欢迎下载,亲

2013-12-20

数据结构与算法分析

对于初学的人还不错哦,尤其是自学c或者c++的.欢迎下载

2013-12-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除