随笔分类 - 面试习题总结分析
摘要:1.流水线 每个线程反复的在数据系列上执行一系列操作,然后把结果交给下一个线程处理。 在流水线方式中,数据元素流串行的被一组线程处理,每个线程依次在每个元素上执行一个特定的操作,并将结果传递给流水线的下一个线程,例如 视频播放器接受线程接受发送过来的数据,输出到解码线程解码,在交给渲染线程显示渲...
阅读全文
摘要:内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。C++内存分配方式有三种:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上...
阅读全文
摘要:PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。信号量是最早出现的用来解决进程同步与互斥问题的机制,包括一个称为信号量的变量及对它进行的两个原语操作。 信号量(semaphore)的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关...
阅读全文
摘要:1) 迭代性服务器 迭代性服务器,在开源社区的代表之作是Apache Web服务器。该模型中,存在唯一的侦听进程,侦听进程accept新的链接之后,通过fork的方式,派生出一个新的进程来为这个请求进行专门的服务,直至请求全部处理完成,被fork的进程也会自动退出,在服务过程中被占用的各种资源得以释...
阅读全文
摘要:1.进程进程作为申请系统资源的基本单位,进程必须有一个对应的物理实体。进程的优点:1)顺序程序的特点:具有封闭性和可再现性;2)程序的并发执行和资源共享。多道程序设计出现后,实现了程序的并发执行和资源共享,提高了系统的效率和系统的资源利用率。进程的缺点:操作系统调度切换多个线程要比切换调度进程在速度...
阅读全文
摘要:重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈,所以不会互相干扰。,常见的情况是,程序执行到某个函数foo(...
阅读全文
摘要:昨天看到博客园有个面试者笔试出现此题,昨天大概给出思路,今天经过思考将实现,并做出优化改进 ,逻辑易懂,基本都可以看懂,经过初步测试正确。代码如下: 1 // MindryBuffer.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5...
阅读全文
摘要:#include "stdafx.h"#include #include #include char *MulLargeNum(char *mulA ,char *mulB, char *result){ if(mulA == NULL || mulB == NULL) return NULL; i...
阅读全文
摘要:-march第一个重要的选项是-march。这个选项告诉编译器该为你的处理器架构(architecture)(或arch)生成何种代码,它告诉编译器只为特定类型的CPU生成代码。不同的CPU具有不同的能力,支持不同的指令集,以及不同的执行代码方式。-march标记指示编译器根据你CPU的能力、特征、指令集、怪癖等生成特定的代码。即使/etc/make.conf中的CHOST变量指定了所使用的通用构架,-march还是可以用来为特定的处理器优化程序。x86和x86-64(也包括其他的)的CPU尤其应该利用-march标记。-O接下来是-O变量。这个选项控制所有的优化等级。使用优化选项会使编译过程
阅读全文
摘要:转自博客http://blog.csdn.net/bing_bing/article/details/8093552关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”。这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有那么简单了,选的不好,会让你深受其害。所以他也是面试者最喜欢考察的题目之一。我们按照多个不同的维度,来看看多进程和多线程的对比(注:都是相对的,不是说一个好得不得了,另一个差的无法忍受)维度多进程多线程总结数据共享、同步数据是分开的:共享复杂,需要用IPC;同步简单多线程共享进程数据:共享简单;同步复杂各有优势内
阅读全文