- 博客(20)
- 资源 (5)
- 收藏
- 关注
转载 线程通信 消息队列
转载 http://blog.csdn.net/ygrx/article/details/8964804首先,本文提到的代码的github地址为:https://github.com/wyh267/Cplusplus_Thread_Lib之前,多线程一些基本的东西,包括线程创建,互斥锁,信号量,我们都已经封装,下面来看看消息队列
2016-10-31 11:23:48 1664 1
转载 线程间通信
线程间的通信1.线程之间的通信简介一般而言,在一个应用程序中(即进程),一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程与次线程,工作线程和用户界面线程等。这样,线程与线程间必定有一个信息传递的渠道。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的。线程间的通信涉及到4个问题:(1) 线程间如何传递信息
2016-10-31 10:51:51 343
原创 面试题
面试要打印出上面的样式的字符。#include "stdio.h"#include using namespace std;int main(){ int j,i,k; char str[100]={'\0'}; for (int i=1;i<8;i++) { for (int j=i-1;j>=0;j--) { str[j*i]='*'; for (int k
2016-10-26 23:08:10 268
转载 详细介绍常用的线程同步互斥机制 关键段、事件、互斥量、信号量
来详细介绍常用的线程同步互斥机制——关键段、事件、互斥量、信号量。下面对它们作个总结,帮助大家梳理各个知识点。 首先来看下关于线程同步互斥的概念性的知识,相信大家通过前面的文章,已经对线程同步互斥有一定的认识了,也能模糊的说出线程同步互斥的各种概念性知识,下面再列出从《计算机操作系统》一书中选取的一些关于线程同步互斥的描述。相信先有个初步而模糊的印象再看下权威的定义,应该会记忆的特别深刻。
2016-10-23 14:28:54 785
转载 多线程 临界区CRITICAL_SECTION
上一篇《秒杀多线程第四篇 一个经典的多线程同步问题》提出了一个经典的多线程同步互斥问题,本篇将用关键段CRITICAL_SECTION来尝试解决这个问题。本文首先介绍下如何使用关键段,然后再深层次的分析下关键段的实现机制与原理。关键段CRITICAL_SECTION一共就四个函数,使用很是方便。下面是这四个函数的原型和使用说明。 函数功能:初始化函数原型:void Init
2016-10-23 02:26:22 776
原创 多线程同步Mutex
//经典线程同步问题 互斥量Mutex #include #include #include long g_nNum; unsigned int __stdcall Fun(void *pPM); unsigned int __stdcall Fun1(void *pPM); unsigned int __stdcall Fun2(void *pPM);
2016-10-23 02:18:27 410
原创 C++复制构造函数与友员
C++ 的复制构造函数经常会使用在对象复制的时候。 使用场所: 1 产生副本的时候。如class AAA; AAA a; AAA b(a); 2 对象作为参数传递给函数的时候,对象作为返回值返回的时候。I 格式: 声明 类名(const 类名& anoth
2016-10-22 00:55:21 218
转载 模板(Template)指C++
引言模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计。C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream。函数模板在c++入门中,很多人会接触swap(int&, int&)这样的函数类似代码如下:void swap(int&a , int& b) { int temp = a
2016-10-21 19:30:15 217
原创 C++ Template List(part)
#include using namespace std;template class mynode{public: T m_obj; mynode * m_next;}; template class myList{public: myList() { m_header=NULL; } void create( T val); void addtotail
2016-10-21 18:45:48 368
原创 自己写的链表模板类
#include using namespace std;template class Node{public: Node() { m_header=NULL; m_pNext=NULL; } void CreateList(T newNodeCuntter); int GetListSize(); void AddToTail( T newNodeCuntt
2016-10-21 17:28:46 439
转载 C++ 运算符重载
C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性。运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符函数的定义与其他函数的定义类似,
2016-10-17 16:31:48 508
原创 C++模板的理解
#include #include using namespace std;//using std::cout;//using std::cin;//using std::endl;template class stack{public: void push(T& a); T pop(); stack( int maxSize);//int maxSize void sh
2016-10-17 16:15:11 332
转载 模板类中输入流“>>”和输出流“<<”的重载
模板类中操作符重载问题(">"重载)在模板类中输入流“>>”和输出流“>"的重载。一、将输出流">"重载的实现写在类中#include "stdafx.h"#include using namespace std; templateclass T> class Test { public: Tes
2016-10-17 14:33:51 581
原创 c++ 好的博客
http://www.cnblogs.com/ggjucheng/archive/2012/08/18/2645319.htmlhttp://www.cnblogs.com/xkfz007/articles/2534322.htmlhttps://segmentfault.com/q/1010000000631733
2016-10-17 13:50:14 357
转载 C++ Template
1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float
2016-10-17 09:19:17 311
原创 opencv 访问每个像素点
/http://blog.csdn.net/moc062066 //20111128 #include "opencv2/opencv.hpp" #include using namespace std; using namespace cv; int main(int argc,char** argv) { co
2016-10-14 11:30:20 338
转载 typeid
在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。 dyn
2016-10-12 12:57:14 261
转载 二叉数的遍历
1#include stdio.h> 2#include stdarg.h> 3 4#ifndef bool 5#define bool unsigned int 6#define false 0 7#define true 1 8#endif 9 10#ifndef NULL 11#define NULL 0 12#e
2016-10-12 12:34:26 262
原创 智能指针小代码
智能指针就是封装一个模板类。里面有一个计数器。方便我们去创建,他会自动去回收指针,而不用我们去delete。#include #include #include using namespace std;class Stub{public:string str;void print(){cout}~Stub(){cout}}
2016-10-12 11:03:46 217
转载 VC 读取usb相机
使用vfw# include //加入视频采集所需头文件 需要用到Vfw32.lib库,在project->setting->link->object/library modules中添加 char achDeviceVersion[80] ; // 设备版本信息 char achDeviceAndVersion[160]; //设备名及版本信息
2016-10-10 17:39:26 4157
MFC UI 线程的使用
2018-05-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人