2012年2月18日

摘要: Linux 多线程函数解析Linux多线程函数解析Linux多线程函数用得比较多的是下面的3个pthread_create(),pthread_exit(),pthread_join();它们都是在头文件之中。编译时需要加静态库-lpthread下面是函数的说明: pthread_create是UNIX环境创建线程函数int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);返回值 若成功则返回0,否.. 阅读全文

posted @ 2012-02-18 10:39 无忧consume 阅读(199) 评论(0) 推荐(0) 编辑

摘要: 在 Win32 下用 C++ 实现多线程读写锁 读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,一个读写锁同时只能有一个写者或多个读者(与CPU数相关),但不能同时既有读者又有写者。 现在Win32的API,用C++实现自己的读写锁。这组API包括:CreateMutex,CreateEvent,WaitForSingleObject,WaitForMultip.. 阅读全文

posted @ 2012-02-18 10:38 无忧consume 阅读(727) 评论(0) 推荐(1) 编辑

摘要: MIDI的意思是乐器数字接口:(Musical Instrument Digital Interface)它是早在微软开发Windows以前就有的一个用于电子键盘的标准。MIDI定义了一个传输和存储音乐信息的协议。 Win32 API 提供了几种处理MIDI数据的方法。在Windows中有很多方法播放MIDI文件。这里我们讨论一种最简单的方法。 01.ShellExecute (hWnd, "open", "c:\\windows\\media\\Canyon.mid", NULL, NULL, SW_SHOWNORMAL); ShellExecute和 阅读全文

posted @ 2012-02-18 10:37 无忧consume 阅读(340) 评论(0) 推荐(0) 编辑

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

posted @ 2012-02-18 10:25 无忧consume 阅读(162) 评论(0) 推荐(0) 编辑


Copyright © 2024 无忧consume
Powered by .NET 8.0 on Kubernetes