10 2014 档案
摘要:linux 共享内存shm_open实现进程间大数据交互read.c #include #include #include #include #include #include #include #include /*int shm_open(const char *name, int oflag,...
阅读全文
摘要:共享内存的工作方式顾名思义,共享内存让一段内存可供多个进程访问。用特殊的系统调用(即对 UNIX 内核的请求)分配和释放内存并设置权限;通过一般的读写操作读写内存段中的数据。共享内存并不是从某一进程拥有的内存中划分出来的;进程的内存总是私有的。共享内存是从系统的空闲内存池中分配的,希望访问它的每个进...
阅读全文
摘要:关于shm_open和shm_unlink的使用问题referencefunctionobjectsystembehaviorlinuxC programming in the UNIX environment的编程手册,一般都会为进程间用共享内存的方法通信提供两组方法:1. POSIX定...
阅读全文
摘要:key_t键和ftok函数三种类型的system v IPC使用key_t值作为他们的名字。头文件把key_t这个数据类型定义为一个整数,它通常是一个至少32位的整数,这些整数通常是由ftok函数赋予的。函数ftok()把一个已存在的路径名和一个整数标识符转换成一个key_t值,称为IPC键。#in...
阅读全文
摘要:可以看到内存映射中需要的一个参数是int fd(文件的标识符),可见函数是通过fd将文件内容映射到一个内存空间,我需要创建另一个映射来得到文件内容并统计或修改,这时我创建这另一个映射用的仍是mmap函数,它仍需要用到fd这个文件标识,那我不等于又重新打开文件读取文件里的数据1.既然这样那同对文件的直...
阅读全文
摘要:阅读目录 楔子 离线脚本 flask的多app应用 为什么用栈 楔子 我在之前的文章《flask源码解析之上下文》中对flask上下文流程进行了详细的说明,但是在学习的过程中我一直在思考flask上下文中为什么要使用栈完成对请求上下文和应用上下文的入栈和出栈操作,而且栈所维护的无非不就是一个列表,我
阅读全文
摘要:system()函数功能强大,我对linux中的实现比较了解,具体分析这个,windows中的类似就不详解了。好了,先看linux版system函数的源码:代码:#include#include#include#includeint system(const char * cmdstring){ ...
阅读全文
摘要:最近在学Python里异步IO中的协程,协程最初是由生成器变形的yield而来,感觉学完理解有些困难,故此再来回顾一下之前学习的生成器。在Python学习之初比较容易混淆可迭代对象、迭代器和生成器。因此,做以总结以辨析其中关键的区别。以下仅为习后个人理解,如有偏差,还请指出! Talk is che
阅读全文
摘要:假设我们有一个三列索引 (a, b, c),那么 B+ 树中的存储方式通常如下: 根节点(Root): 根节点存储的是索引的最高层次的键值,这里就是索引的第一列 a 的键值。如果查询语句中没有包含列 a,那么根节点可以帮助确定索引的起始位置。如果查询中包含了列 a,根节点可以指示 B+ 树中下一层的
阅读全文
摘要:pthread_cond_signal()的具体位置?"pthread_cond_signal()必须要放在pthread_mutex_lock() 和pthread_mutex_unlock() 之间, "我认为这个做法有个问题,举个例子简单假设线程1、2,curnum 值为 1, 语句执行顺序...
阅读全文
摘要:IPC介绍——10个ipcs例子semaphorearrays2010performancesystemaccessipcs是一个uinx/linux的命令。用于报告系统的消息队列、信号量、共享内存等1、列出所有的ipcs参数: -a 他是默认选项及ipcs等效于ipcs -a[root@te...
阅读全文
摘要:写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在
阅读全文
摘要:signal(SIGPIPE, SIG_IGN) 当服务器close一个连接时,若client端接着发数据。根据TCP 协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。 根据信号的默认处理规则S...
阅读全文
摘要:signal(SIGCHLD, SIG_IGN); //忽略SIGCHLD信号,这常用于并发服务器的性能的一个技巧//因为并发服务器常常fork很多子进程,子进程终结之后需要//服务器进程去wait清理资源。如果将此信号的处理方式设为//忽略,可让内核把僵尸子进程转交给init进程去处理,省去了//...
阅读全文
摘要:在Stevens的《Unix 环境高级编程》中第11章线程关于pthread_cond_wait的介绍中有一个生产者-消费者的例子P311,在进入pthread_cond_wait前使用while进行条件判断,而没有直接使用if,耐人费解!代码如下:#include struct msg { st...
阅读全文
摘要:C中结构体的存储分配 对于C语言中结构体所占的存储空间的大小,也一直是笔试面试的常客,今天好好看了一下这方面,以前一直以为很清楚了,今天通过各种实际测试举例,发现原来还是没有搞透彻,好在现在是彻底懂了,所以和大家分享,希望能有所帮助。提到结构体,相信大家都知道元素存储要对齐,话是没有错,只是这个“对
阅读全文
摘要:我想大家都知道python的gil限制,记得刚玩python那会,知道了有pypy和Cpython这样的解释器,当时听说是很猛,也就意味肯定是突破了gil的限制,最后经过多方面测试才知道,还是那德行…. 如果你的应用英语那种cpu密集运算的,p大部分情况都推荐使用多进程。 有些扯远了,我个人很喜欢用
阅读全文