自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (8)
  • 收藏
  • 关注

原创 C++类型转换

C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。1.const_cast去掉const属性:#include using namespace std;class CMyClass{public: CMyClass() { m_nNu

2017-04-21 13:01:15 187

原创 信号量

信号量对线程的同步方式与前面几种方法不同,信号量允许多个线程同时使用共享资源,这与操作系统中的PV操作相同。它指出了同时访问共享资源的线程最大数目。它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。在用CreateSemaphore创建信号量时即要同时指出允许的最大资源计数和当前可用资源计数。一般是将当前可用资源计数设置为最大资源计数。每增加一个线程对共享资源的

2017-04-20 11:55:53 391

原创 事件对象

事件对象也可以通过通知操作的方式来保持线程的同步,并且可以实现不同进程中的线程同步操作。事件对象包含的几个操作原语:CreateEvent() 创建一个事件对象OpenEvent() 打开一个事件对象SetEvent() 设置指定的事件对象为有信号状态WaitForSingleObject() 等待一个事件 WaitForMultipleObjects() 等待多个事件 

2017-04-19 15:16:05 701

原创 互斥量

互斥量跟临界区很相似,只有拥有互斥对象的线程才具有访问资源的权限,由于互斥对象只有一个,因此就决定了任何情况下此共享资源都不会同时被多个线程所访问。当前占据资源的线程在任务处理完后应将拥有的互斥对象交出,以便其他线程在获得后得以访问资源。互斥量比临界区复杂。因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享。 互斥量包含的

2017-04-19 15:00:26 363

原创 生产者消费者模式

#include <queue>#include <string>#include <mutex>#include <thread>#include <iostream>class CBuffer{public: CBuffer() {} ~CBuffer() {} static CBuffer* GetBuffe...

2017-04-19 12:38:19 222

转载 临界区

保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。 临界区包含两个操作原语: EnterCriticalSection() 进入临界区

2017-04-18 12:54:47 2619

转载 WaitForMultipleObjects用法详解

WaitForMultipleObjects是Windows中的一个功能非常强大的函数,几乎可以等待Windows中的所有的内核对象函数原型为:DWORD WaitForMultipleObjects(    DWORD nCount,             // number of handles in the handle array  CONST HANDLE *lpHan

2017-04-18 12:26:39 544

转载 虚拟机扩充硬盘

1. 按 打开运行对话框,输入“CMD”,回车,打开命令提示符窗口;2. 进入 VMware 的安装目录(X:\Program Files\VMware\VMware Workstation);3. 输入一些命令 vmware-vdiskmanager.exe -x 30GB "f:\VM\window 2000\Windows 2000.vmdk";注意:a. 异常情况:Failed

2017-04-18 12:10:06 1171

转载 C++中虚析构函数的作用

我们知道,用C++开发的时候,用来做基类的类,其析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:有下面的两个类:class Base{public:Base() {};virtual ~Base(){ cout << "Output from the destructor of class Base!" << endl; };virtual v

2017-04-18 12:06:22 211

原创 动态链接库加载函数的两种方法及区别

动态链接库的编写:1.创建一WIN32动态链接库工程Dll1,添加一C++源文件Dll1.cpp,在源文件中编写一个测试函数int _stdcall add(int a, int b){    return (a+b);}2.定义一模块定义文件Dll1.def,在里面添加如下内容:LIBRARY Dll1EXPORTSadd该文件的作用是导出函数

2017-04-18 11:54:24 4372

原创 使用GCC开发动态库供java调用

1.开发环境Ubuntu14.04 64位+gcc4.8.4+JDK2.安装JDK1).查看JDK的版本$java -version2).安装JDK如何没有安装JDK,可以通过命令$javah 查看可安装的JDK包,选择一个安装(我系统上安装的是openjdk-7-jdk)命令如下:$sudo apt-get inst

2017-04-18 11:39:36 436

原创 单例模式

单例模式的作用:1). 确保一个类只有一个实例被建立2). 提供了一个对对象的全局访问指针3). 在不影响单例类的客户端的情况下允许将来有多个实例1.懒汉式懒汉式的特点是延迟加载:class Singleton{public: ~Singleton() = default; static Singleton* GetInstance() { if (nullpt...

2017-04-14 20:31:58 301

原创 STL map的用法

map是STL的一个关联容器,它提供一对一的数据处理能力(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)一.插入#include #include using namespace std;int main() { pair::iterator, bool> insert_pair; map cls; //1.使用pair

2017-04-13 14:57:23 318

转载 C++空类的研究

1.C++空类及没有成员变量的类的大小实例分析众所周知的C++中空类的大小为1,但是除了空类之外的其他一些没有成员变量的类的大小,还是有相当一部分开发人员对此有很多不明之处的。这里我们以如下代码为例:#include using namespace std;class a {};class b {public: void test() { cout << "test" <<

2017-04-13 13:21:26 284

原创 stringstream的用法

#include #include #include #include using namespace std;int main(){ ifstream infile1; infile1.open("d:\\test.txt"); string sLine, sWord; while (getline(infile1, sLine)) { istringstream i

2017-04-13 11:47:50 284

原创 C++标准库getline函数的使用

原型:getline(istream&, string&)从输入流istream读取一行数据到stirng中。#include #include #include using namespace std;int main(){ //使用通用的getline ifstream infile1; infile1.open("d:\\test.txt"); string sL

2017-04-13 10:39:30 2108

西门子开发的OPC UA客户端和源码.zip

西门子开发的OPC UA客户端和源码 C#

2019-12-04

kaldi的全部资料_v0.4.zip

kaldi全部资料v0.4

2019-06-05

DuiLib入门教程

DuiLib开发入门教程。

2019-04-07

Boost程序库完全开发指南 第3版 中文版

Boost程序库完全开发指南 第3版 中文版

2018-01-25

区块链技术指南

比较高的区块链技术书籍,讲解了比特币,超级账本以及以太坊等技术,喜欢的可以下载来看!

2017-09-30

Visual Assist X2093破解版

适用于VS2015及以前的版本的vs开发工具,编程时会有代码提示,提高代码的编写速度。

2017-09-30

Vsiaul Assist X2074破解版

适用于VS2010及以前的版本的vs开发工具,编程时会有代码提示,提高代码的编写速度。

2017-05-19

2009年自考软件工程培训试验及答案

2009年自考软件工程培训试验及答案详细讲解。

2009-11-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除