自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (15)
  • 收藏
  • 关注

转载 Redis 并发, 锁, 竞争锁问题

Redis并发问题Redis为单进程单线程模式,采用队列模式将并发访问变为串行访问。Redis本身没有锁的概念,Redis对于多个客户端连接并不存在竞争,但是在Jedis客户端对Redis进行并发访问时会发生连接超时、数据转换错误、阻塞、客户端关闭连接等问题,这些问题均是由于客户端连接混乱造成。对此有2种解决方法:1.客户端角度,为保证每个客户端间正常有序与Redis进行通信,对连

2017-07-31 10:42:54 898

转载 再谈互斥锁与条件变量

pthread_cond_wait总和一个互斥锁结合使用。在调用pthread_cond_wait前要先获取锁。pthread_cond_wait函数执行时先自动释放指定的锁,然后等待条件变量的变化。在函数调用返回之前,自动将指定的互斥量重新锁住。int pthread_cond_signal(pthread_cond_t * cond);pthread_cond_signal通过

2017-07-24 08:49:12 239

转载 在curl中设置自定义的HTTP头

问题:我正尝试使用curl命令获取一个URL,但除此之外我还想在传出的HTTP请求中设置一些自定义的头部字段。我如何能够在curl中使用自定义的HTTP头呢?curl是一个强大的命令行工具,它可以通过网络将信息传递给服务器或者从服务器获取数据。他支持很多的传输协议,尤其是HTTP/HTTPS以及其他诸如FTP/FTPS, RTSP, POP3/POP3S, SCP, IMAP/IMAPS协

2017-07-21 08:10:39 23548

转载 算法的时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度-总结        通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的

2017-07-20 21:18:17 349

转载 C/C++中全局变量,静态局部变量,局部变量的初始化问题

转载: http://www.cnblogs.com/catch/p/4314256.html什么时候初始化根据 C++ 标准,全局变量的初始化要在 main 函数执行前完成,常识无疑,但是这个说法有点含糊,main 函数执行前到底具体是什么时候呢?是编译时还是运行时?答案是既有编译时,也可能会有运行时(seriously), 从语言的层面来说,全局变量的初始化可以划分为以下两

2017-07-20 11:36:48 11994

转载 局部静态变量是如何做到只初始化一次的?

局部静态变量是如何做到只初始化一次的?关于编译选项 -Wa,-adlhn参考http://blog.csdn.net/lanxinju/article/details/5900986  以下内容来自于内网别的高人的回复可以写个程序测试一下: 12345678910

2017-07-20 11:31:00 2310

转载 多队列网卡简介

多队列网卡是一种技术,最初是用来解决网络IO QoS (quality of service)问题的,后来随着网络IO的带宽的不断提升,单核CPU不能完全处满足网卡的需求,通过多队列网卡驱动的支持,将各个队列通过中断绑定到不同的核上,以满足网卡的需求。常见的有Intel的82575、82576,Boardcom的57711等,下面以公司的服务器使用较多的Intel 82575网卡为例,分析

2017-07-19 21:45:37 672 1

转载 Linux Page Cache的工作原理

1 、前言  自从诞生以来,Linux 就被不断完善和普及,目前它已经成为主流通用操作系统之一,使用得非常广泛,它与Windows 、UNIX 一起占据了操作系统领域几乎所有的市场份额。特别是在高性能计算领域,Linux 已经成为一个占主导地位的操作系统,在2005年6月全球TOP500 计算机中,有 301 台部署的是 Linux 操作系统。因此,研究和使用 Linux 已经成为开发

2017-07-14 14:42:38 6566

转载 多核编程 与 单核多线程编程的区别

转载:http://blog.csdn.net/doupei2006/article/details/8066022本文是阅读周伟民的《多核计算与程序设计》书摘1、锁竞争:单核中,如果单个线程取得所,则获取CPU运行时间,其他等待获取锁的线程被阻塞。使用了锁,影响的只是枷锁和解锁的耗时,CPU始终运行。多核中,若2个(更多)线程使用同一把

2017-07-13 15:32:02 848

转载 浅析SkipList跳跃表原理及代码实现

转载:http://blog.csdn.net/ict2014/article/details/17394259SkipList在leveldb以及lucence中都广为使用,是比较高效的数据结构。由于它的代码以及原理实现的简单性,更为人们所接受。我们首先看看SkipList的定义,为什么叫跳跃表?“ Skip lists are data structures that us

2017-07-11 16:17:24 359

转载 结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

转载:http://blog.csdn.net/fengbingchun/article/details/24185217结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区。比起指针,用空数组有这样的优势:(1)、不需要初始化,数组名直接就是所在的偏移;(2)、不占任何空间,指针需要占用int长度空间,空数组不占任何空间。“这个数组不占用任何内存”,意味

2017-07-11 14:26:05 604

转载 跳表SkipList

跳表SkipList1.聊一聊跳表作者的其人其事2. 言归正传,跳表简介3. 跳表数据存储模型4. 跳表的代码实现分析5. 论文,代码下载及参考资料 . 聊一聊作者的其人其事 跳表是由William Pugh发明。他在 Communications of the ACM June 1990, 33(6) 668-676 发表了Skip lis

2017-07-11 10:02:51 245

转载 SkipList 跳表

转载:http://kenby.iteye.com/blog/1187303为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。 想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参

2017-07-10 09:56:45 244

转载 Skip List(跳跃表)原理详解与实现

Skip List(跳跃表)原理详解与实现 转载:http://dsqiu.iteye.com/blog/1705530本文内容框架:§1 Skip List 介绍§2 Skip List 定义以及构造步骤 §3 Skip List 完整实现§4 Skip List 概率分析§5 小结   

2017-07-10 09:52:55 316

转载 文件IO - O_DIRECT和O_SYNC

一,O_DIRECT,绕过缓冲区高速缓存,直接IO直接IO:Linux允许应用程序在执行磁盘IO时绕过缓冲区高速缓存,从用户空间直接将数据传递到文件或磁盘设备,称为直接IO(direct IO)或者裸IO(raw IO)。应用场景:数据库系统,其高速缓存和IO优化机制均自成一体,无需内核消耗CPU时间和内存去完成相同的任务。使用直接IO的弊端:可能会大大降低性能,内核对

2017-07-07 16:28:02 1239

转载 read/fread write/fwrite 的实现原理

fread就是通过read来实现的,fread是C语言的库,而read是系统调用。差别在read每次读的数据是调用者要求的大小,比如调用者要求读取10个字节数据,read就会从内核缓冲区(操作系统开辟的一段空间用来存储磁盘上的数据)读10个字节数据到数组中,所以每次调用read会涉及到用户态与內核态之间的切换从而损耗一定的性能。而fread不一样,为了加快读的速度,fread每次都会从内核缓冲

2017-07-07 14:24:41 3784

转载 mmap和direct io和write和fwrite区别

看完此文,题目不言自明。转自 http://blog.chinaunix.net/uid-27105712-id-3270102.html在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述。不copy内核代码。

2017-07-07 14:07:05 1601 2

转载 将进程绑定到指定CPU

现在多CPU的趋势越来越大了. 有时候为了更好地操作机器, 需要将某个进程绑定到具体的CPU上去. 下面给出了一个进程绑定到具体的CPU上去的一个例子. cpu.c#include#include#include#include#include#define __USE_GNU#include#

2017-07-07 10:01:09 720

转载 常见的并行程序设计问题的解决方法

常见的并行程序设计问题的解决方法1. 线程过多        线程并不是越多越好,对于某个程序,如果线程过多反而会严重地降低程序的性能。这种影响主要在于:        将给定的工作量划分给过多的线程会造成每个线程的工作量过少,因此可能导致线程启动和终止的开销比程序实际工作的时间还要多。        同时,太多并发线程的存在将导致共享有限硬件资源的开销增大。如

2017-07-07 09:47:21 2958

转载 五种主要多核并行编程方法分析与比较

五种主要多核并行编程方法分析与比较随着多核时代的到来与流行,传统的单线程串行程序的编程模式必将改变,取而代之的将是并行编程。目前已经有五种主要并行编程模型,下面将对此五种模型进行概括性的分析与比较:1. MPI  MPI(Message Passing Interface)消息传递接口是MPI论坛发布的一个库,而不是一门实现语言,支持C/C++/Fortran。是一种消息传递编

2017-07-07 09:30:14 7494

转载 AF_INET域与AF_UNIX域socket通信原理对比

转载:http://blog.csdn.net/sandware/article/details/409234911.  AF_INET域socket通信过程典型的TCP/IP四层模型的通信过程。发送方、接收方依赖IP:Port来标识,即将本地的socket绑定到对应的IP端口上,发送数据时,指定对方的IP端口,经过Internet,可以根据此I

2017-07-07 09:27:07 526

转载 分布式存储系统可靠性如何估算

常规情况下,我们一般使用多副本技术来提高存储系统的可靠性,无论是结构化数据库存储 (如典型的 mysql)、文档型 Nosql 数据库存储 (mongodb ) 或者是常规的 blob 存储系统 (GFS、Hadoop) 等,无不如此。因为数据几乎可以称得上是企业生命力的核心,保障数据存储系统的可靠性对于任何企业来说都不是一件小事。那么,如何较为准确地去衡量集群数据的可靠性?如何进

2017-07-06 10:15:20 693

转载 Linux下的IPC-UNIX Domain Socket

一、 概述UNIX Domain Socket是在socket架构上发展起来的用于同一台主机的进程间通讯(IPC),它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。UNIX Domain Socket有SOCK_DGRAM或SOCK_STREAM两种工作模式,类似于UDP和TCP,但是面向消息的UNIX Domain S

2017-07-05 10:30:27 495

转载 无锁数据结构(基础篇):原子性、原子性原语

转载:http://blog.jobbole.com/90811/无锁数据结构基于两方面——原子性操作以及内存访问控制方法。本文中我话题主要涉及原子性和原子性原语。在开始之前,我对大家表示感谢,谢谢你们对初识无锁数据结构的热爱。看到大家对无锁话题很感兴趣,我感到很开心。我计划依据学术概念将此做成一个系列,从基础到算法,同时以文本的形式展示 libcds 中的代码实现。但有些读者希望

2017-07-05 10:22:14 2631

转载 nginx异步非阻塞应该如何理解?

系统调用比如 read(),默认就是阻塞的,你调用它之后,可能此时还没有数据发送过来,它就一直阻塞,直到从内核读到数据才返回。而 epoll 之所以为非阻塞是因为,它一直循环,直到某个连接已经将数据发送过来后才会去调用 read() ,因为此时内核区是有数据的,所以不会发生阻塞,这就是非阻塞。而同步异步这个要对比起来说。严谨来说,OS 层的 epoll 是同步非阻塞的,在系统调用中有与之相反的

2017-07-04 15:16:55 2248

转载 高性能网关设备及服务实践(dpdk)--服务器架构研究

针对海量的网络流量,转发性能是我们最关键的一个方面,那构建高性能的后台服务器有哪些关键的技术和需要注意的地方,今天邀请了后台开发同学童琳和郑胜利来和大家一起谈谈。一、引言随着互联网的高速发展,内容量的提升以及对内容智能的需求、云产业的快速突起,作为互联网的计算基石服务器的形态以及使用成为了炙手可热的话题,全球各家大型互联网公司都持续的在服务器平台上有非常大的动作,譬如f

2017-07-04 14:59:27 4495

转载 零拷贝原理-数据的收发-软中断和DMA

转载: http://blog.csdn.net/a417930422/article/details/52585862为何要懂零拷贝原理?因为rocketmq存储核心使用的就是零拷贝原理。io读写的方式中断DMA中断方式中断方式的流程图如下:用户进程发起数据读取请求系统调度为该进程分配cpucpu向io控制器(ide,scsi)发送io请求

2017-07-04 14:20:16 2944

转载 Linux top VIRT RES SHR SWAP DATA内存参数详解

Linux top VIRT RES SHR SWAP DATA内存参数详解转载:http://blog.csdn.net/u011547375/article/details/9851455  其实很早之前就想开博客,写一写码农几年自己积攒下来的知识与见解。看过很多文章有过很多感触,有些收获很值得梳理一下认真思考反思的。今天就先从基本的top开始吧,在网上看了很多关于top讲解内存参

2017-07-04 11:03:15 818

转载 cpu显示信息

在使用top命令的时候会看到这么一行:里面的各个值分别是什么意思呢?今天被问到这个问题,发现答的不是很清楚。果然啊,天天用最多的top命令都还没摸透。。。惭愧。。。于是就查了些资料:官方解释Cpu(s)表示的是cpu信息。各个值的意思是:us: user cpu time (or) % CPU time spent in user space

2017-07-04 10:47:03 297

转载 “分布式哈希”和“一致性哈希”的概念与算法实现

分布式哈希和一致性哈希是分布式存储和p2p网络中说的比较多的两个概念了。介绍的论文很多,这里做一个入门性质的介绍。  分布式哈希(DHT)  两个key point:每个节点只维护一部分路由;每个节点只存储一部分数据。从而实现整个网络中的寻址和存储。DHT只是一个概念,提出了这样一种网络模型。并且说明它是对分布式存储很有好处的。但具体怎么实现,并不是DHT的范畴。  一致性

2017-07-03 15:57:50 213

转载 一致性哈希算法(consistent hashing)

转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179    一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2

2017-07-03 15:31:11 180

转载 互斥锁、读写锁 、 自旋锁和RCU锁

基础知识思考整理 http://blog.csdn.net/aganlengzi/article/details/50996227互斥锁 mutex:在访问共享资源之前对进行加锁操作,在访问完成之后进行解锁操作。 加锁后,任何其他试图再次加锁的线程会被阻塞,直到当前进程解锁。 如果解锁时有一个以上的线程阻塞,那么所有该锁上的线程都被编程就绪状态, 第一个变为就绪

2017-07-03 00:45:58 1743

转载 自旋锁总结

自旋锁可分为用在单核处理器上和用在多核处理器上。单核处理器:用在单核处理器上,又可分为两种:1.系统不支持内核抢占此时自旋锁什么也不做,确实也不需要做什么,因为单核处理器只有一个线程在执行,又不支持内核抢占,因此资源不可能会被其他的线程访问到。2.系统支持内核抢占这种情况下,自旋锁加锁仅仅是禁止了内核抢占,解锁则是启用了内核抢占。

2017-07-02 23:58:45 882

转载 阻塞、非阻塞、异步、同步以及select/poll和epoll

针对IO,总是涉及到阻塞、非阻塞、异步、同步以及select/poll和epoll的一些描述,那么这些东西到底是什么,有什么差异?一般来讲一个IO分为两个阶段:等待数据到达把数据从内核空间拷贝到用户空间现在假设一个进程/线程A,试图进行一次IO操作。A发出IO请求,两种情况:  1)立即返回  2)由于数据未准备好,需要等待,让出CPU给别的线程,自

2017-07-01 23:26:35 373

编译原理第6章-语义分析

编译原理第6章-语义分析

2016-11-22

poll和epoll内核源码剖析

poll和epoll内核源码剖析

2016-11-21

c语言开发实例详解

用大量经典有趣的问题来讲解C的开发,强烈推荐

2015-03-28

TCP-IP详解卷2

TCP-IP详解卷2是TCP/IP技术详解卷2

2011-09-25

TCP-IP详解卷1

TCP-IP详解卷1是TCP/IP协议详解卷1.

2011-09-25

计算机网络与因特网

计算机网络与因特网一书是计算机网络技术里的圣经

2011-09-25

Berkeley DB 资料

Berkeley DB 批量插入更新与删除用法示例 Berkeley 函数接口 Berkeley DB 由浅入深 SQL 开发人员 Oracle Berkeley DB 指南 Berkeley DB参考手册

2010-09-21

c 函数速查手册 c的标准库函数

本帮助文件由本人整理制作,内容全摘自网络,版权归实际作者所有.

2009-10-13

linux c函数速查手册

linux编程的标您可以免费的使用、分发本手册。但未经Linhan的授权许可不得擅自进行篡改、反编译,及将其全部或部分用于商业用途。 本手册受著作权法和国际公约的保护,作者保留对本手册及本声明的最终修改权。 准库函数 都可以搜到

2009-10-13

lcd ampire128x64 的使用 proteus

本资源为lcd ampire128x64 的使用,包括它的仿真,软件为proteus6 所用程序是用 keil编写,也有源码。

2009-05-17

自动控制 -20-sim

自动控制 荷兰软件20-sim的使用及课题设计,该课题设计是利用了仿真软件的控制应用试验箱

2009-04-28

autocad做的小户型平面图

小户型平面图即是平面图的设计,本作品是用AutoCAD的平面设计模块制作的平面图图1是整个小户型平面图制作的成品图,人们可以看到这个作品的整个平面设计和室内部的布局。

2009-03-14

用matlab做的小波信号变换系统

用matlab作的小波信号变换系统,利用二维小波变换实现图像压缩、图像融合和图像增强等功能。

2009-03-14

空空如也

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

TA关注的人

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