自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

转载 静态变量初始化的时机

静态变量的内存分配和初始化对于C语言的全局和静态变量,不管是否被初始化,其内存空间都是全局的;如果初始化,那么初始化发生在任何代码执行之前,属于编译期初始化。由于内置变量无须资源释放操作,仅需要回收内存空间,因此程序结束后全局内存空间被一起回收,不存在变量依赖问题,没有任何代码会再被执行!C++引入了对象,这给全局变量的管理带领新的麻烦。C++的对象必须有构造函数生成,并最终执行析

2017-10-02 16:40:48 9631 3

转载 linux系统下进程的信号(signal)处理流程是怎么样的?

作者:peilin song链接:https://www.zhihu.com/question/24913599/answer/115102869来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。最近在正好用到这部分内容,刚刚研究过,不算深入,简单说说我的认识吧。我想先从一些机制和原理开始说,会比较清楚。信号是一种软件层面上对中断的模拟,

2017-08-28 12:36:44 544

原创 类型的Overflow与underflow

Overflow:值超过了该类型所能表示的最大值Underflow:值低于该类型所能表示的最小值例如:short int  val=32767;//short是两个字节,最高位是符号位//val=0111,1111,1111,1111//加一 发生overflow (overflow 后结果:-32768)//最高所能表示的数值是32767,此时如果加1,发生o

2017-08-26 14:21:07 9450

转载 linux高级编程基础系列:线程间通信

线程间通信机制:线程是一种轻量级的进程。进程的通信机制主要包括无名管道、有名管道、消息队列、信号量、共享内存以及信号等。这些机制都是由linux内核来维护的,实现起来都比较复杂,而且占用大量的系统资源。线程间的通信机制实现起来则相对简单,主要包括互斥锁、条件变量、读写锁和线程信号等。本文会对以上所涉及的线程间的通信机制一一展开。互斥锁通信机制:1、互斥锁

2017-08-25 21:53:59 173

转载 syslog简介——系统日志写入API

一、简介syslog是Linux系统默认的日志守护进程。默认的主配置文件和辅助配置文件分别是/etc/syslog.conf和/etc/sysconfig/syslog文件。通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。二、配置文件/etc/syslog.

2017-08-19 00:11:47 320

原创 ubuntu下无/etc/syslog.conf

Syslog upgradeThe sysklogd package has been replaced with rsyslog. Configurations in /etc/syslog.conf will be automatically converted to /etc/rsyslog.d/50-default. If you modified the log rota

2017-08-18 23:11:03 1584

转载 孤儿进程与僵尸进程

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。孤儿进程是没有父进程

2017-08-16 23:40:27 153

原创 控制进程结束的时候,后台进程信号处理

Kernel sends SIGHUP to controlling process:for real (hardware) terminal: when disconnect is detected in a terminal driver, e.g. on hang-up on modem line;for pseudoterminal (pty): when last

2017-08-16 22:21:36 453

转载 why group leader cannnot able create the session in Linux

Forbidding setsid() in a process group leader is required by POSIX:The setsid() function shall create a new session, if the calling process is not a process group leader.It is requir

2017-08-16 10:08:59 224

转载 关于终端和控制台的一些解释

今天看到有人问终端和控制台的区别,而且这个问题比较有普遍性,因此想抽出一点时间来解释一下这两个术语的区别。  终端,英文叫做terminal ,通常简称为term ,比如我们在X下的xterm.   控制台,英文叫做console。   要明白这两者的关系,还得从以前的多人使用的计算机开始。   大家都知道,最初的计算机由于价格昂贵,因此,一台计算机一般是由多个人同时使用的

2017-08-14 10:13:04 260

转载 Linux下的进程和作业概念,以及作业管理

进程的一个比较正式的定义是:在自身的虚拟地址空间运行的一个单独的程序。Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。 交互进程——由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。 批处理进程——这种进程和终端没有联系,是一个进程序列。 监控进程(也称守护进程)——linux系统启动时启动的进程,并在后台运行。进程和作业的

2017-08-13 22:22:05 1295

转载 generator yield超详解

To understand what yield does, you must understand what generators are. And before generators come iterables.IterablesWhen you create a list, you can read its items one by one. Reading its i

2017-08-04 20:51:17 482

转载 字符编码笔记:ASCII,Unicode和UTF-8

作者: 阮一峰日期: 2007年10月28日今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得

2017-08-04 19:27:17 192

转载 关于使用IO复用和多线程问题

今天突然想到我什么情况下用IO复用什么情况下用多线程呢?于是上网搜浏了下,以下为答案:多线程模型适用于处理短连接,且连接的打开关闭非常频繁的情形,但不适合处理长连接。多线程模型默认情况下,(在Linux)每个线程会开8M的栈空间,再TCP长连接的情况下,2000/分钟的请求,几乎可以假定有上万甚至十几万的并发连接,假定有10000个连接,开这么多个线程需要10000*8M=80G的内存

2017-07-20 23:53:50 1284 1

转载 设置socket的非阻塞模式

关于socket的阻塞与非阻塞模式以及它们之间的优缺点,这已经没什么可言的;我打个很简单的比方,如果你调用socket send函数时;如果是阻塞模式下:send先比较待发送数据的长度len和套接字s的发送缓冲的长度,如果len大于s的发送缓冲区的长度,该函数返回SOCKET_ERROR;如果len小于或者等于s的发送缓冲区的长度,那么send先检查协议是否正在发送s的发送缓冲中的

2017-07-20 22:39:22 1155

转载 Reactor模型 三种模型 演变

无论是C++还是Java编写的网络框架,大多数都是基于Reactor模式进行设计和开发,Reactor模式基于事件驱动,特别适合处理海量的I/O事件。1.2.1. 单线程模型Reactor单线程模型,指的是所有的IO操作都在同一个NIO线程上面完成,NIO线程的职责如下:1)作为NIO服务端,接收客户端的TCP连接;2)作为NIO客户端,向服务端发起TCP连接;

2017-07-20 19:52:02 3294 1

转载 对于观察者模式,Reactor模式,Proactor模式的一点理解

最近就服务器程序IO效率这一块了解一下设计模式中的Reacotr模式和proactor模式,感觉跟观察者模式有些类似的地方,网上也看了一些其他人对三者之间区别的理解,都讲得很仔细,在此根据自己的理解做一点简单的记录和总结,如果理解不对的地方,以后再慢慢深入和更新。观察者模式:  也可以称为为 发布-订阅 模式,主要适用于多个对象依赖某一个对象的状态并,当某对象状态发生改变时,要通知

2017-07-20 19:24:15 234

转载 enable_shared_from_this模板类使用完全解析

enable_shared_from_this模板类使用完全解析以前都没有用过enable_shared_from_this模板类,虽然经常遇到但是也没怎么去关注,今天抽时间好好学习了下enable_shared_from_this模板类,发现在使用shared_ptr模板类和enable_shared_from_this模板类时有许多陷阱的,故记录于此。什么时候该使用enable

2017-07-07 09:53:17 284

转载 win7 codeblock在调用boost::thread遇到的错误——解决办法

转载:http://www.cnblogs.com/flywuya/archive/2010/11/30/1892524.html使用boost::thread库时可能会碰到如下错误 (Linux下 gcc4.4+boost1.40)||=== testthread, Release ===|obj/Release/main.o||In function `

2017-07-03 19:28:43 934

转载 多线程共享和独享的资源

进程是资源分配的基本单位;线程是系统调度的基本单位。平时我们写的程序都是作为线程运行的;进程可以看做是包括一系列线程和资源的统称;一个进程至少包括一个线程(主线程,进入main函数时产生的);在其中可以创建其它线程,也可以不创建。同一进程间的线程究竟共享哪些资源呢,而又各自独享哪些资源呢?共享的资源有a. 堆  由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此n

2017-07-03 10:33:01 540

原创 异步和多线程

要了解异步就需要知道DMA,就是direct memory access(直接内存访问)的意思。当进行异步操作时,拥有DMA功能的硬件在和内存进行数据交换的时候可以不消耗CPU资源,只要CPU在发起数据传输时发送一个指令,硬件就开始自己和内存交换数据,在传输完成之后硬件会触发一个中断来通知操作完成,而这些无须消耗CPU时间。因此在DOS 这样的单进程(而且无线程概念)系统中也同样可以发起异步的

2017-06-29 16:29:54 221

转载 TCP快速重传为什么是三次冗余ack,这个三次是怎么定下来的?

两次duplicated ACK肯定是乱序造成的,丢包肯定会造成三次duplicated ACK!参见链接:https://www.zhihu.com/question/21789252

2017-06-25 17:00:10 1488

原创 为什么用端口号而不用fd

主机为每个套接字分配一个端口号,报文到达主机的时候,运输层检查报文中的目的端口号并定向到相应套接字,之后数据再通过套接字进入连接的进程道理很简单,但之前有个问题一直不理解,为什么要通过端口号才能定向,直接通过fd定向到socket多好啊 从一位叫iMe的高手了解到原因是因为端口号是持久的,FD是可变的所以服务器开放的那些默认端口号80就很方便了,不需要用户在网址里输入这

2017-06-20 10:52:14 719

转载 归并排序

归并排序源自于分治法,分为分解,解决与合并三部曲(pg17)//将有二个有序数列a[first...mid]和a[mid...last]合并。 void mergearray(int a[], int first, int mid, int last, int temp[]) { int i = first, j = mid + 1; int m = m

2017-06-15 15:52:54 210

空空如也

空空如也

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

TA关注的人

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