自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 资源 (1)
  • 收藏
  • 关注

转载 详解Spring 启动时解析WEB.xml过程

一:首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境;二:其次,在web.xml中会提供有contextLoaderListener。在web容器启动时,会触发容器初始化事件,此时contextLoaderListener会监听到这个事件,其contextInitia

2018-02-05 16:20:49 1119

转载 sendfile:Linux中的"零拷贝"

如今几乎每个人都听说过Linux中所谓的"零拷贝"特性,然而我经常碰到没有充分理解这个问题的人们。因此,我决定写一些文章略微深入的讲述这个问题,希望能将这个有用的特性解释清楚。在本文中,将从用户空间应用程序的角度来阐述这个问题,因此有意忽略了复杂的内核实现。什么是”零拷贝”为了更好的理解问题的解决法,我们首先需要理解问题本身。首先我们以一个网络服务守护进程为例,考虑它在将存储在文件

2017-07-20 11:15:53 361

原创 实现对文件的实时监控--使用Inotify方法

linux系统下监控文件更改–Inotify API使用方法1.简介:1.inotify机制可用于监控文件或目录。当监控目录时,与该目录自身以及该目录下面的文件都会被监控,其上有事件发生时都会通知给应用程序2.otify监控机制为非递归,若应用程序有意监控整个目录子树内的事件,则需对该树中的每个目录发起inotify_add_watch()调用可使用select(),poll(),epoll()

2017-04-21 09:36:15 6124

原创 ACE在linux下的安装和实例运行详细步骤

ace库的编译与试用一、下载安装包 下载地址:http://download.dre.vanderbilt.edu/ 由于我只需要使用ACE,因此我只下载了ACE.tar.gz。ps:我得安装环境为sentos 7 二、安装前的配置 首先把文件解压,我解压在了/Software文件夹下,解压后会出现一个名字为ACE_wrappers的文件夹。这样所有ACE的源文件都在/Software/AC

2017-04-18 09:38:51 5674

原创 关于udp和tcp的一些比较

作者:hailiang huang链接:https://www.zhihu.com/question/20292749/answer/85286488来源:知乎著作权归作者所有,转载请联系作者获得授权。QQ为什么实用udp        很多人提到keepalive,TCP无法感知网络中断这些问题。。。这个算是TCP一个容易踩的坑,但这并不能说明UDP就比TCP好(或者

2017-02-07 20:30:47 6343

原创 udpSocket捕获ICMP不可达错误

http://blog.csdn.net/yyyiran/article/details/12197365

2017-02-07 15:39:14 860

原创 golang 用指定网卡IP发http请求

https://my.oschina.net/mejinke/blog/141897

2016-12-08 17:22:36 5030

转载 go 类型转换

golang是强类型语言,在应用过程中类型转换基本都会用到。下面整理一下常用的类型转换,会持续更新。整形转字符串fmt.Println(strconv.Itoa(100))该方法的源码是:// Itoa is shorthand for FormatInt(i, 10).func Itoa(i int) string { return FormatInt(int64(i),

2016-09-18 11:48:42 1038

转载 优化 Go 中的 map 并发存取

Catena (时序存储引擎)中有一个函数的实现备受争议,它从 map 中根据指定的name 获取一个 metricSource。每一次插入操作都会至少调用一次这个函数,现实场景中该函数调用更是频繁,并且是跨多个协程的,因此我们必须要考虑同步。该函数从 map[string]*metricSource 中根据指定的 name 获取一个指向 metricSource 的指针,如果获取不到

2016-08-18 14:16:35 510

转载 Golang-简洁的并发

转载原文:http://www.yankay.com/go-clear-concurreny/多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起,新的并发模式逐渐清晰。正如过程式编程和面向对象一样,一个好的编程模式有一个极其简洁的内核,还有在此之上丰富的外延。可以解决现实世界中各种各样

2016-07-25 10:03:02 4756

转载 net包

**   * Created by Administrator on 13-12-9.   */  package main    import (      "fmt"      "os"      "net"  )    /**   * 将string类型的ip地址转换为IP对象   */  func main() {        name := "192.168.1.97"        

2016-06-27 14:40:29 1459

转载 Linux系统上用源码安装OpenSSL的方法

先下载openssl 1.0.1g版本,命令如下:   复制代码代码如下:#wget -c https://www.openssl.org/source/openssl-1.0.1g.tar.gz再下载这个版本的md5校验包:   复制代码代码如下:#wget -c https://www.openssl.org/source/openssl-1

2016-06-14 09:56:27 400

原创 详解ping和ping完整实现

发送ICMP报文时,必须由程序自己计算校验和,将它填入ICMP头部对应的域中。校验和的计算方法是:将数据以字(16位)为单位累加到一个双字中,如果数据长度为奇数,最后一个字节将被扩展到字,累加的结果是一个双字,最后将这个双字的高16位和低16位相加后取反,便得到了校验和!下面是程序实现源代码:USHORTchecksum(USHORT *buffer,int size){ 

2016-06-08 16:25:07 2044

原创 tcp/ip定时器

TCP/IP定时器介绍一条TCP连接会使用9个定时器:超时重传定时器,持续定时器,ER延迟定时器,PTO定时器,ACK延迟定时器,SYNACK定时器,保活定时器,FIN_WAIT2定时器,TIME_WAIT定时器。#define ICSK_TIME_RETRANS 1 /* Retransmit timer */#define ICSK_TIME_DACK 2 /* Delay

2016-06-05 10:15:12 799

转载 SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设

http://blog.163.com/xychenbaihu@yeah/blog/static/13222965520118139252103/

2016-05-29 21:29:36 355

原创 Tiny Web服务器代码分析

Tiny Web服务器代码分析《深入理解计算机系统》中开发了一个小但是功能齐全的称为Tiny的web服务器,这里是Tiny服务器的源码解析。1.Tiny的main程序  Tiny是一个迭代服务器,通过命令行中传递来的端口值,调用Open_listenfd()函数打开一个监听套接字,然后Tiny执行无限循环:服务器阻塞在accept,等待监听描述符listenfd上的连接请求,当服务器从

2016-05-01 14:11:15 1959

转载 CMake 使用方法

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。CMake 使用方法CMake的所有的语句都写在一个叫:CMakeLists.txt 的文件中。当CMakeLists.txt文件确定后,可以用ccmake命令对

2016-04-23 11:37:40 313

转载 Time_wait 原理

TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态。下图是以客户端主动关闭连接为例,说明这一过程的。   TIME

2016-04-23 09:32:51 279

原创 Linux下time函数

Linux下time函数都在time.h头文件中。1、头文件 和时间有关的头文件有以下几个: time.hsys/time.hsys/times.hsys/timeb.hsys/timex.htime.h是C标准库的头文件,其余sys开头的都是Linux系统自己的头文件。 /usr/include/time.h定义了常用的time函数。 到/usr/

2016-04-11 18:28:59 4672

转载 web服务器 并发 基本概念

序:    这里指的服务器是指提供HTTP服务的服务器,人们通常衡量一台web服务器能力的大小为其在单位时间内能处理的请求数的多少。3.1 吞吐率    Web服务器的吞吐率是指其单位时间内所能处理的请求数。更关心的是服务器并发处理能力的上限即最大吞吐率。    Web服务器在实际工作中,其处理的Http请求包括对很多不同资源的请求即请求的url不一样。正因为这种请

2016-04-10 20:17:11 2899

转载 C++封装、继承、多态

C++封装继承多态总结面向对象的三个基本特征面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!封装                                                                   

2016-04-10 18:53:04 375

原创 1.linux基本I/O接口介绍

1.linux基本I/O接口介绍ssize_t read(intfd, void *buf, size_t count);ssize_t write(intfd, void *buf, size_t count);·     1·     2以上两个是linux下的两个系统调用,用于对文件行基本的I/O操作。fd是非负文件描述符,其实相当于标识一个文件的唯一编号。默认标号0是标

2016-04-07 12:14:39 2762

转载 linux stat函数讲解

linux stat函数讲解stat函数讲解表头文件:    #include              #include 定义函数:    int stat(const char *file_name, struct stat *buf);函数说明:    通过文件名filename获取文件信息,并保存在buf所指的结构体stat中返回值:      执行成功

2016-04-07 11:16:12 598

原创 百度实习电话面试经历

本人大三学生一枚,能有这次百度实习面试的机会也是多亏了大神学长,他把我的简历内推进百度的,我属于直接电话面试的;  一面:   3月11日下午,一点半午睡起来看到了一个北京的陌生电话,开始以为是骚扰电话,后来一想会不会是前两天内推的百度有消息了,赶紧打过去。结果真是百度说约定下周一下午三点半给我打电话进行电话面试准备好电脑和网络,要进行在线编程。   太突然了,以前根本没有面试的经验也

2016-03-23 13:50:32 5282

原创 Linux 虚拟内存和物理内存的理解

Linux 虚拟内存和物理内存的理解首先,让我们看下虚拟内存: 第一层理解1.         每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构 2.       一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,t

2016-03-20 22:12:37 515 1

转载 Java虚拟机基础知识

Java虚拟机基础知识         写在前面之前老大让做一些外包面试,我的问题很简单:介绍一下工作中解决过比较有意思的问题。HashMap使用中需要注意的点。第一个问题主要是想了解一下对方项目经验的含金量,第二个问题则是测试下是否知道一些细节,比如HashMap是线程不安全的、用HashMap来做缓存的话可能导致内存泄露等,自我感觉问题设计的还可以:D~ 但是看了其

2016-03-20 22:09:07 323

转载 深入理解 Java 垃圾回收机制

一、垃圾回收机制的意义Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。ps:内存泄露是指该内存空间使用完毕之后未回收,在不涉及复杂数据

2016-03-20 22:08:11 518

转载 关于Linux的进程和线程

什么是进程直观点说,保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源,所以我们也说,进程是资源分配的最小单位。什么是线程线程存在与进程当中,是操作系统调度执行的最小单位。说通俗点,线程就是干活的。进程和线程的区别与联系如果说进程是一个资源管家,负责

2016-03-17 22:28:39 399

原创 进程基本概念

Linux进程概念一:Linux进程的四大要素1:一段供进程执行的程序,该程序可以被多个进程执行。2:独立的内核堆栈。3:进程控制快(task_struct:有了这个数据结构,进程才能成为内核调度的一个基本单位接受内核的调度。同时,这个结构还记录着进程所占用的各项资源。4:独立的存储空间:即拥有专有的用户空间,除了前面的内核空间还有用户空间。线程:只有前三条,没有第四条。

2016-03-17 22:23:15 479

原创 linux pthreadpool实现和线程池的用处

#include "threadpool.h"void* work(void* arg){ char *p = (char*) arg; printf("threadpool callback fuction : %s.\n", p); sleep(1);}int main(void){ struct threadpool *pool = thread

2016-03-13 08:40:10 1512

原创 pthread_cond_wait()条件变量

对pthread_cond_wait一直不是很理解,看到一篇文章写的不错,原文在这里,http://www.ibm.com/developerworks/cn/linux/thread/posix_thread3/#1下面说一下,pthread_cond_wait(&mycond,&mymutex)的东西1. 设计pthread_cond_wait 的初衷   线程

2016-03-13 08:11:56 297

转载 Servlet 工作原理解析

Servlet 工作原理解析Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。本文将带你认识 Java Web 技术是如何基于 Servlet 工作,你将知道:以 Tomcat 为例了解 Servlet 容器是如何工作的?一个

2016-03-04 12:09:58 320

原创 Myeclipse如何自动创建hibernate

http://jingyan.baidu.com/article/456c463b99f4370a583144a8.html下载MYsql 连接驱动http://jingyan.baidu.com/article/456c463b99f4370a583144a8.html

2016-03-04 11:22:49 236

转载 Servlet简介

一、Servlet简介  Servlet是sun公司提供的一门用于开发动态web资源的技术。  Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:  1、编写一个Java类,实现servlet接口。  2、把开发好的Java类部署到web服务器中。  按照一种约定俗成的称呼习惯,通

2016-02-29 20:02:13 245

转载 通过生活中例子模拟java面向接口编程实例

http://blog.csdn.net/5iasp/article/details/18007173

2016-01-12 14:53:23 577

转载 模板类

一、类模板定义及实例化1. 定义一个类模板:View Code 1 templateclass 模板参数表>2 3 class 类名{4 5 // 类定义......6 7 }; 其中,template 是声明类模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个,可以是类型参数 ,也可以是非类型参数。类型参数由关键字class或

2015-12-12 18:57:49 372

转载 QT数据库实例操作(二)

QSqlTableModel类继承至QSqlQueryModel类,该类提供了一个可读写单张SQL表的可编辑数据模型,功能:修改,插入,删除,查询,和排序常用函数QVariant headerData ( int section,Qt::Orientation orientation, int role = Qt::DisplayRole ) const  获取水平头或垂直头标

2015-11-23 14:30:04 1219

转载 数据库操作实例

Qt数据库 QSqlTableModel实例操作是本文所介绍的内容,我们先来看内容。在上一篇我们讲到只读的QSqlQueryModel也可以使其可编辑,但是很麻烦。Qt提供了操作单表的QSqlTableModel,如果我们需要对表的内容进行修改,那么我们就可以直接使用这个类。相关联文章:Qt数据库 QSqlQueryModel实例操作 上篇Qt数据库 QSqlQueryMo

2015-11-23 14:28:40 505

转载 Qt学习之路_5(Qt TCP的初步使用)

Qt学习之路_5(Qt TCP的初步使用)       在上一篇博文Qt学习之路_4(Qt UDP的初步使用) 中,初步了解了Qt下UDP的使用,这一节就学习下TCP的使用。2者其实流程都差不多。当然了,本文还是参考的《Qt及Qt Quick开发实战精解》一书中的第5个例子,即局域网聊天工具中的UDP聊天和TCP文件传送部分。另外http://www.yafeilinux.com/ 上有其

2015-11-16 14:38:01 1144

转载 Qt学习之路_4(Qt UDP的初步使用)

为了使用Qt自带的Socket进行网络编程,先必须熟悉Socket编程的原理,另外还需对Qt一些基本类的操作比较熟悉。由于刚接触不久,所以还是以看人家的代码来学习。这次主要是学Qt下UDP的编程,且熟悉一些Qt下代码的编写流程,所以本文参照的是《Qt及Qt Quick开发实战精解》一书中的第5个例子:局域网聊天工具中的UDP聊天部分。     另外http://www.yafeilinux.c

2015-11-16 10:52:50 618

操作系统教程全

大学操作系统完整教程, 基于Linux学习教程

2015-06-24

空空如也

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

TA关注的人

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