Linux | c&cpp | Email | github | QQ群:425043908 关注本站

itarticle.cc

01无锁环形队列,volatile和乱序执行

乱序执行(out-of-order execution)是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。比方Core乱序执行引擎说程序某一段有7条指令,此时CPU将根据各单元电路的空闲状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路执行。

02cpu 乱序执行与问题

“CPU执行乱序”是一个常见的话题,鉴于自己一直对这个概念存在些许理解的差池,故今日写一篇文章留作备忘。注,这里仅仅讨论CPU执行乱序,不涉及编译器的乱序。

03linux内核参数注释与优化

对比网上其他人的生产环境优化参数,需要优化的参数基本差不多,只是值有相应的变化。具体优化值要参考应用场景,这儿所列只是常用优化参数,是否适合,可在上面查看该参数描述,理解后,再根据自己生产环境而设

04libevent简介和使用

libevent是一个基于事件触发的网络库,memcached底层也是使用libevent库。总体来说,libevent有下面一些特点和优势:1、事件驱动,高性能;2、轻量级,专注于网络;3、跨平台,支持 Windows、Linux、Mac Os等;4、 支持多种 I/O多路复用技术, epoll、poll、dev/poll、select 和kqueue 等; 5、支持 I/O,定时器和信号等事件;

05Linux下内核TCP参数优化(以CentOS为例)

内核的优化跟服务器的优化一样,应本着稳定安全的原则。下面以64位的Centos5.5下的Squid服务器为例来说明,待客户端与服务器端建立TCP/IP连接后就会关闭SOCKET,服务器端连接的端口状态也就变为TIME_WAIT了。那是不是所有执行主动关闭的SOCKET都会进入TIME_WAIT状态呢?

06Linux makefile 教程

makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令

07epoll在LT和ET模式下的读写方式

在epoll的ET模式下,正确的读写方式为:读: 只要可读, 就一直读,直到返回0,或者 errno = EAGAIN,写:只要可写, 就一直写,直到数据发送完,或者 errno = EAGAIN

08Socket编程之非阻塞connect

在 TCP socket 被设置为非阻塞的情况下调用 connect ,若没有立即返回成功,则会返回 -1 以及 errno = EINPROGRESS 的 错误,其表示连接操作正在进行中,但是尚未完成,与此同时 TCP 三次握手操作会同时进行。在这之后,我们可以通过 select/epoll 来检查这个链接是否建立成功

09scanf与sscanf的使用

scanf与printf函数一样,都被定义在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>。它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中

10 如何在main函数之前调用函数

如果想定义在main函数之前调用的函数,可以在函数的声明之后加上一句“__attribute__((constructor))”;如果想定义在main函数之后调用的函数,可以在函数的声明之后加上一句“__attribute__((destructor))”

11协程的简单理解

协程可以认为是一种用户态的线程,与系统提供的线程不同点是,它需要主动让出CPU时间,而不是由系统进行调度,即控制权在程序员手上

12C/C++ Volatile关键词深度剖析

C/C++ Volatile关键词的第三个特性:”顺序性”,能够保证Volatile变量间的顺序性,编译器不会进行乱序优化。Volatile变量与非Volatile变量的顺序,编译器不保证顺序,可能会进行乱序优化。同时,C/C++ Volatile关键词,并不能用于构建happens-before语义,因此在进行多线程程序设计时,要小心使用volatile,不要掉入volatile变量的使用陷阱之中

我的名片

网名:丰果 | Ranger

职业:游戏开发

现居:上海市

Email:86668082@qq.com




站点信息

  • 建站时间:2016-04-01
  • 文章统计:728条
  • 文章评论:82条
  • QQ群二维码:扫描二维码,互相交流