2011年11月25日

pthread_cond_wait()

摘要: /************pthread_cond_wait()的使用方法**********/ pthread_mutex_lock(&qlock); pthread_cond_wait(&qready, &qlock); pthread_mutex_unlock(&qlock);/*****************************************************/The mutex passed to pthread_cond_wait protects the condition.The callerpasses it locked 阅读全文

posted @ 2011-11-25 14:02 evilying 阅读(16606) 评论(1) 推荐(3) 编辑

堆与栈的区别

摘要: 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的 全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另 一块区域。 - 程序结束后由系统释放。 4、文字常量区 —常量字符 阅读全文

posted @ 2011-11-25 13:57 evilying 阅读(258) 评论(0) 推荐(0) 编辑

环境变量

摘要: 环境变量是包含关于系统及当前登录用户的环境信息的字符串,一些软件程序使用此信息确定在何处放置文件(如临时文件). 环境变量说白了就是指定一个软件的路径,比如说配置TomcatJdk等软件时就必须设置环境变量。方法如下: 点击我的电脑然后按右键——属性——高级——环境变量——新建——名称/路径。 环境变量是包含诸如驱动器、路径或文件名之类的字符串。环境变量控制着多种程序的行为。例如,TEMP 环境变量指定程序放置临时文件的位置。 任何用户都可以添加、修改或删除用户的环境变量。但是,只有管理员才能添加、修改或删除系统环境变量。 使用“控制面板”中的“系统”可以自定义下列变量: 用于 logged_ 阅读全文

posted @ 2011-11-25 13:48 evilying 阅读(381) 评论(0) 推荐(0) 编辑

操作系统中的同步、异步、阻塞和非阻塞

摘要: 在进行网络编程时,我们常常见到同步、异步、阻塞和非阻塞四种调用方式。这些方式彼此概念并不好理解。下面是我对这些术语的理解。 同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin,isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。当对方处理完毕以后,该函数才把消息处理函数所返回的LRESULT值返回给调用者。 异步 异步的概念和同步相对。当一... 阅读全文

posted @ 2011-11-25 13:44 evilying 阅读(5592) 评论(1) 推荐(0) 编辑

同步与阻塞

摘要: 说到阻塞,首先得说说I/O等待。I/O等待是不可避免的,那么既然有了等待,就会有阻塞,但是注意,我们说的阻塞是指当前发起I/O操作的进程被阻塞同步阻塞I/O便是指,当进程调用某些涉及I/O操作的系统调用或库函数时,比如accept()(注意accept也算在了i/o操作)、send()、recv()等,进程便暂停下来,等待I/O操作完成再继续运行。这是一种简单而有效的I/O模型,它可以和多进程结合起来有效的利用CPU资源,但是代价就是多进程的大量内存开销。同步阻塞 进程坐水,就不能烧粥 同步非阻塞 类似于用一个进程坐水,烧粥. while(true){if... if... } 好处就是一个进 阅读全文

posted @ 2011-11-25 13:20 evilying 阅读(5849) 评论(1) 推荐(0) 编辑

信号与信号量的区别

摘要: 信号量(Semaphore),有时被称为信号灯,是在多环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成这个过程,需要创建一个信号量VI,然后将Acquire Semaphore VI以及Release Semaphore VI分别放置在每个关键代码段的首末端。确认这些信号量VI引用的是初始创建的信号量。1.信号:(signal)是一种处理异步事件的方式。信号时比较复杂的通信方式,用于通知接受进程有某种事件 阅读全文

posted @ 2011-11-25 13:14 evilying 阅读(870) 评论(0) 推荐(0) 编辑

进程通信

摘要: 现在最常用的进程间通信的方式有:信号,信号量,消息队列,共享内存。所谓进程通信,就是不同进程之间进行一些"接触",这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指传递一些massege。他们的使用方法是基本相同的,所以只要掌握了一种的使用方法,然后记住其他的使用方法就可以了。1.信号在我学习的内容中,主要接触了信号来实现同步的机制,据说信号也可以用来做其它的事情,但是我还不知道做什么。信号和信号量是不同的,他们虽然都可用来实现同步和互斥,但前者是使用信号处理器来进行的,后者是使用P,V*作来实现的。使用信号要先知道有哪些信号,在Linux 阅读全文

posted @ 2011-11-25 13:12 evilying 阅读(343) 评论(0) 推荐(0) 编辑

导航