- 博客(14)
- 资源 (41)
- 收藏
- 关注
原创 Windows操作系统的一些基本知识
本文来自《英特尔多核,多线程编程》一书。 对于程序员来说,操作系统是由本身的API(Application Programming Interface)定义的。API 包含了所有应用程序构造操作系统的函数调用,同时包含了相关的数据类型和结构。在Windows 中,API还意味着一个特殊的程序体系结构。Windows 从1.0 到3.1使用的是英特尔8086、8088和286微处理器的16
2011-12-30 16:19:58 6426 1
原创 Linux平台用C++封装线程读写锁
在Linux平台上已经有现成的线程读写锁pthread_rwlock_t以及相关API,现将这些API封装成与Win32平台上相同的接口,以便于编写跨平台程序。这些API包括pthread_rwlock_init,pthread_rwlock_rdlock,pthread_rwlock_tryrdlock,pthread_rwlock_wrlock,pthread_rwlock_trywrlock
2011-12-29 20:55:26 7263
原创 在Win32下用C++实现多线程读写锁
读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,一个读写锁同时只能有一个写者或多个读者(与CPU数相关),但不能同时既有读者又有写者。 现在Win32的API
2011-12-28 21:27:40 10369 2
原创 将Linux的信号量sem_t封装成事件对象
将信号量sem_t相关的一组API封装成Win32平台上的事件对象类之后,在Linux平台上就可以像使用事件对象那样,方便地进行线程同步了。class CEventImpl{protected: /* 创建匿名信号量 `bAutoReset true 人工重置 false 自动重置 */ CEventImpl(bool manualReset);
2011-12-24 20:51:54 4013
原创 Linux平台用C++实现信号量,同步线程
使用Linux平台上现有的信号量sem_t相关的一组API,可以方便地进行线程同步。现在用pthread_mutex_t和pthread_cond_t相关的一组API实现信号量机制。这组API包括:pthread_mutex_init,pthread_cond_init,pthread_mutex_lock,pthread_cond_signal,pthread_mutex_unlock,pthr
2011-12-23 22:25:10 5210
原创 用C++封装Win32信号量,同步线程
在Win32环境下编写多线程应用程序,也会常用到信号量Semaphore来进行线程同步。与其相关的一组API包括:CreateSemaphore,ReleaseSemaphore,WaitForSingleObject,和CloseHandle。关于这些API的功能以及参数意义等这里就不多说了。下边,我封装了一个信号量类,以及测试代码。已由本人在VS2005环境下编译,测试通过。MySemap
2011-12-20 21:07:01 4695
原创 Linux平台用C++实现事件对象,同步线程
前文在Win32平台上用C++实现了事件对象Event,对线程进行同步,以达到期望目的。这次在Linux平台上实现与之类似的事件对象。与其相关的一组API包括:pthread_mutex_init,pthread_cond_init,pthread_mutex_lock,pthread_cond_wait,pthread_mutex_unlock,pthread_cond_broadcast,pt
2011-12-17 19:44:46 7052 1
原创 逐步改善,设计优秀API
本文转载自逐步改善,设计优秀API文 / Jaroslav Tulach 存在,是否仍旧保持得不错。 判断一个API是否优秀,并不是简单地根据第一个版本给出判断的,而是要看多年后,该API是否还能存在,是否仍旧保持得不错。 第一个版本远非完美 第一个版本总是来得特别容易,不仅容易开发,而且容易发布。API的需求会随着时间而变,那些过去有效的API可能现在已经...
2011-12-16 20:29:05 1347
原创 用C++实现Win32事件对象,同步线程
在Win32环境下编写多线程应用程序,经常要用到事件对象Event,来进行线程同步。与其相关的一组API包括:CreateEvent,SetEvent,ResetEvent,WaitForSingleObject,和CloseHandle。关于这些API的功能以及参数意义等这里就不多说了。下边,我封装了一个事件对象类,以及测试代码。已由本人在VS2005环境下编译,测试通过。MyEvent.h
2011-12-16 19:33:14 4840 1
原创 用C++实现自己的内存池
打开浏览器,搜索了下内存管理的概念,百度百科中是这样定义的:内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。说到内存,与之紧密相联系的一个概念就是指针。回想起上学那会儿,自己对指针是即喜欢,又害怕。因为学好了指针,就可以学好C,继而学好C++,但面对那些晦涩的概念,和程序运行中一些莫名其妙的指针越界、内存泄露……
2011-12-14 21:27:45 16772 4
原创 交叉编译之海思3515开发笔记
宿主机(host) :编辑和编译程序的平台,这里用的是基于X86的PC机,在安装了Windows XP系统的个人PC上编辑协议栈程序和模拟程序,使用VS2005开发工具。在个人PC上,将协议栈程序和模拟程序编译通过,测试无问题后,通过ftp上传到基于X86的编译服务器PC机,操作系统为Linux,进行交叉编译。交叉编译成功后,在指定目录下生成下列文件:libstackxxx.sox
2011-12-13 18:13:42 8837
原创 互斥对象锁和临界区锁性能比较
在Win32平台上进行多线程编程,常会用到锁。下边用C++实现了互斥对象(Mutex)锁和临界区(CRITICAL_SECTION)锁,以加深理解和今后方便使用。代码已在VS2005环境下编译测试通过。Lock.h#ifndef _Lock_H#define _Lock_H#include //锁接口类class ILock{public: virtual ~ILock
2011-12-10 22:54:26 14865 9
原创 Linux平台上用C++实现多线程互斥锁
在上篇用C++实现了Win32平台上的多线程互斥锁,这次写个Linux平台上的,同样参考了开源项目C++ Sockets的代码,在此对这些给开源项目做出贡献的斗士们表示感谢! 下边分别是互斥锁类和测试代码,已经在Fedora 13虚拟机上测试通过。Lock.h#ifndef _Lock_H#define _Lock_H#include //锁接口类clas
2011-12-09 20:14:12 16524 5
原创 用C++实现多线程Mutex锁(Win32)
本文目的:用C++和Windows的互斥对象(Mutex)来实现线程同步锁。 准备知识:1,内核对象互斥体(Mutex)的工作机理,WaitForSingleObject函数的用法,这些可以从MSDN获取详情; 2,当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex 是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线
2011-12-07 20:38:57 30199 8
QTreeViewDragDrop
2024-09-11
Netron7.8.4安装包合集.rar
2024-08-22
X-AnyLabeling2.3.6安装包及代码
2024-08-14
opencv-3rdparty-contrib-xfeatures2d
2024-08-14
yolov10模型权重文件
2024-08-01
cmake windows最新版安装包(3.26.3-x86-64)
2023-04-27
aws-sdk-cpp-1.11.4(x64-windows)
2023-04-27
aws-sdk-cpp-1.11.4(x86-windows)
2023-04-27
C++ 第三方库管理工具
2023-04-25
计算机视觉+OpenCV+图像阈值处理
2022-12-10
Opencv4.6.0+contrib4.6.0安装包
2022-12-09
ORL人脸照片数据库(The ORL Database of Faces)
2022-11-18
C++调用OpenCV实现图像反色处理
2022-10-09
SPVMN GB28181视频监控自测软件_6.0.29
2022-09-13
计算机视觉+机器学习+OpenCV
2022-08-28
computer_resource_usage.py
2022-08-12
boost_1_79最新版源码(win和linux)
2022-08-08
C/C++ 定时器程序(含源码和demo)
2022-07-28
Arm上电自启动和监控应用程序解决方案(脚本代码)
2022-07-08
基于IE内核的浏览器,内含源码
2022-07-05
msvc2019编译Qt5.15.3源码所需环境依赖工具合集
2022-04-22
Qt5.15.3源码编译安装包(Win32版本,内含pdb符号文件)
2022-04-22
Qt5.15.3源码编译安装包(Win64版本,不含pdb符号文件)
2022-04-22
onvif_wsdl_Ver.21.12(schemaLocation和location已改为绝对路径)
2022-03-24
常用linux远程连接工具合集
2022-03-18
linux环境编译安装clang12.0.0源代码压缩包合集
2022-03-18
代码统计工具SourceCounter
2022-03-11
Silverlight开发包
2022-03-11
ffmpeg64位编译工具.rar
2019-10-18
vista 120/250 IPM SDK
2014-05-30
MyPing.exe
2014-05-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人