摘要:
转自:http://blog.csdn.net/dai_weitao/archive/2007/08/22/1754964.aspx条件变量分为两部分: 条件和变量. 条件本身是由互斥量保护的. 线程在改变条件状态前先要锁住互斥量.1. 初始化: 条件变量采用的数据类型是pthread_cond_t,在使用之前必须要进行初始化, 这包括两种方式:静态: 可以把常量PTHREAD_COND_INITIALIZER给静态分配的条件变量.动态: pthread_cond_init函数, 是释放动态条件变量的内存空间之前, 要用pthread_cond_destroy对其进行清理.#include&l 阅读全文
posted @ 2011-05-01 19:40
hnrainll
阅读(385)
评论(0)
推荐(0)
摘要:
转自:http://blogold.chinaunix.net/u/22935/showart_340462.html一、什么是条件变量与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个线程自动阻塞,并释放等待状态改变 阅读全文
posted @ 2011-05-01 15:25
hnrainll
阅读(514)
评论(0)
推荐(0)
摘要:
转自:http://www.cnblogs.com/feisky/archive/2010/03/08/1680950.html与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为假,一个线程自动阻塞,并释放等待状态改变的互斥锁 阅读全文
posted @ 2011-05-01 13:50
hnrainll
阅读(597)
评论(0)
推荐(0)
摘要:
#include<stdio.h>#include<pthread.h>#include<stdlib.h>#include<unistd.h>#include<signal.h>void *test_program(void *arg);int main(int argc,char *argv[]){ int i; pthread_t thread_id; void *status; if(pthread_create(&thread_id,NULL,test_program,NULL)>0) { fprintf(st 阅读全文
posted @ 2011-05-01 13:34
hnrainll
阅读(329)
评论(0)
推荐(0)
摘要:
/* ************************************************************************ * Filename: n_trylock.c * Description: * Version: 1.0 * Created: 2011骞?4鏈?2鏃?20鏃?9鍒?2绉? * Revision: none * Compiler: gcc * Author: wenhao (wh), hnrain1004@gmail.com * Company: sunplusapp * *********************************** 阅读全文
posted @ 2011-05-01 13:31
hnrainll
阅读(4790)
评论(0)
推荐(0)
摘要:
转自:http://blog.csdn.net/rsp19801226/archive/2008/10/18/3095157.aspx解析C/C++语言中的sizeof一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。二、sizeof的使用方法 1、用于数据类型 sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如sizeof(int)。 2、用于变量 sizeof使用形式:siz 阅读全文
posted @ 2011-05-01 12:38
hnrainll
阅读(2014)
评论(1)
推荐(0)
摘要:
这是一个很简单的程序void main(){int i=8;printf("%d,%d,%d,%d\n", ++i, --i, i++, i--);}在这里我使用了VS.NET2005编译的结果是:8,8,7,8用TC2.0编译的结果是:8,7,7,8VC6.0我没有安装,所以没有试过,也没办法分析。这里我们可以看到,由不同的编译器产生了不同结果,可见这个问题是依赖编译器的理解和实现的。换句话说,对于i++和++i的处理本来就是非常具有歧义的,当然在自己应用中我相信也不会有任何程序员写出这样歧义的代码。但是作为一个问题,我们有必要分析一下不同编译器究竟如何理解i++和++i 阅读全文
posted @ 2011-05-01 12:19
hnrainll
阅读(1373)
评论(4)
推荐(0)
摘要:
#include <stdio.h>#include <stdlib.h>void foo(void){ printf("into the foo function\n"); return;//结束子函数调用,返回主函数 printf("out the foo function\n");}int main(){ foo(); printf("Hello world!\n"); return 0;}运行结果: 阅读全文
posted @ 2011-05-01 08:22
hnrainll
阅读(1797)
评论(0)
推荐(0)
摘要:
return是C++预定义的语句,它提供了种植函数执行的一种放大。当return语句提供了一个值时,这个值就成为函数的返回值.说到return,有必要提及主函数的定义,下面是从网络上找到的资料,好好消化吧,对了解主函数中返回值的理解有很大的帮助.很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* ... */ } is not and never has be 阅读全文
posted @ 2011-05-01 08:17
hnrainll
阅读(919)
评论(0)
推荐(0)
摘要:
main函数的返回值用于说明程序的退出状态。如果返回0,则代表程序正常退出;返回其它数字的含义则由系统决定。通常,返回非零代表程序异常退出。下面我们在winxp环境下做一个小实验。首先编译下面的程序: int main( void ) { return 0; }然后打开附件里的“命令提示符”,在命令行里运行刚才编译好的可执行文件,然后输入“echo%ERRORLEVEL%”,回车.就可以看到程序的返回值为0。假设刚才编译好的文件是a.exe,如果输入“a && dir”,则会列出当前目录下的文件夹和文件。但是如果改成“return -1”,或者别的非0值,重新编译后输入“a & 阅读全文
posted @ 2011-05-01 07:54
hnrainll
阅读(5163)
评论(0)
推荐(0)