- 博客(9)
- 收藏
- 关注
原创 分支预测浅谈
本文通过一个对有序、无序数列进行判断求和程序效率问题的讨论进行引申, 分析处理器的分支预测对不同数据分布的程序运行性能影响,同时给出了利用位运算的优化方案。最后简要的介绍了处理器指令流水线的运作方式和分支预测器的作用。
2018-03-10 18:16:38 2723
原创 获取线程标识函数gettid和pthread_self的区别
最近阅读源码时发现了有两种获取线程ID的函数:pthread_self和gettid,前者在Richard的APUE一书中有详尽介绍,但后者函数相对陌生,经过一番查阅后现将这两者在此总结一番。pthread_self:pthread_self是POSIX实现的,它返回一个由pthread_t数据类型表示的线程ID,在Linux系统中用无符号整形来表示pthread_t数据类型。
2017-06-20 19:36:05 4471
原创 Linux指令浅析:top指令
top指令是Linux系统中常用的监控当前系统资源利用情况的指令,使用该指令可以直观的动态显示CPU、内存等资源的占用情况。在指令讲解之前我们先来介绍下关于CPU的三种常态:空闲态、用户态、系统态想要查看CPU各种统计信息的话有很多方法,其中top指令是最常见的一种,可以看到由top指令产生的输出大体可分为两大部分:最上面的五行为系统资源信息的总体统计,通过一个空行隔开的下半部分为进程信息区,即运行中的各个进程的实时状态。
2017-03-09 20:45:22 554
原创 Linux IO : 阻塞、非阻塞、同步、异步
在学习Linux网络IO时,同步(synchronous)和异步(asynchronous),阻塞(blocking)和非阻塞(non-blocking)这几个概念一直都频繁出现,且很容易混淆不清。由于不同的系统环境和知识背景下对这几个概念的理解都会有所出入,此处主要以Steven先生的《Unix网络编程:卷一》为基础,在Linux环境中来浅析这几个概念。
2016-10-08 15:59:04 1287
原创 Ubuntu设置静态IP后无网络连接的解决方法
起因是想将虚拟机中的ubuntu设置为桥接模式,分配一个静态IP来测试所写服务器,费了九牛二虎之力修改IP、掩码、DNS等设置后终于成功了,但没想到晚上将虚拟机重启后Ubuntu右上角状态栏显示无网络连接: 于是我尝试在终端执行ping命令,得到:根据这个错误提示,又联想到之前刚修改过DNS配置文件:/etc/reslov.conf 于是我便查看了一下这个文件,却发现我之前的修改被清空了
2016-09-06 10:01:11 12105 1
原创 C/C++宏定义中的do{...} while(0)
C/C++宏定义中do{…} while(0)的用途今天在pthread_create()的manual中看到了一个#define的函数中使用了do {...} while(0),困惑须臾后通过网络解惑,分享如下:
2016-08-25 11:25:44 1775
原创 socket中的长连接和短连接浅析
socket中的长连接和短链接长连接和短链接当网络通信时采用TCP协议时,需在通信双方间建立连接,当读写操作完成后不再需要这个连接时就可以释放这个连接。所谓的短连接就是通信双方建立一个TCP连接,完成数据传送后即断开此连接。长连接是针对短链接而言,在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果在一段时间内没有数据包发送,则需要通信双方发检测包以维持连接。
2016-08-19 14:17:34 2171
原创 Linux IPC:套接字(socket)学习小结(一)
Linux IPC:套接字(socket)学习小结(一)Unix系统提供的很多经典进程间通信机制(IPC)如Pipe、消息队列、共享内存等都是面向同一台计算机上运行的进程(相关进程)之间,所以套接字(socket)存在便是为了允许在不相关的进程(或是不同主机)间创建类似管道的连接。在《Unix/Linux编程实践教程》中将socket通信比喻为打电话查询时间服务的过程,我觉得甚为形象,所以这里也借用了这个类比。
2016-08-09 21:15:00 1165 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人