
c++
文章平均质量分 89
blogdown
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程编程浅析(2)——线程间通信
多线程编程浅析(2)——线程间通信 上文我们介绍了如何建立一个简单的多线程程序,多线程之间不可避免的需要进行通信。相比于进程间通信来说,线程间通信无疑是相对比较简单的。 首先我们来看看最简单的方法,那就是使用全局变量(静态变量也可以)来进行通信,由于属于同一个进程的各个线程是处于同一个进程空间中的,并且它们共享这个进程的各种资源,因此它们都可以毫无障碍的访问这个进程中的全局变量原创 2012-11-28 20:50:39 · 425 阅读 · 0 评论 -
c++多线程入门与提高 blogdown整理
今天我给大家讲一讲C++中的多线程编程技术,C++本身并没有提供任何多线程机制,但是在windows下,我们可以调用SDK win32 api来编写多线程的程序,下面我就此简单的讲一下: 创建线程的函数 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD SIZE_T dwStackS原创 2012-11-29 19:19:37 · 1266 阅读 · 0 评论 -
工作线程与消息循环 blogdown的整理
工作线程与消息循环 首先声明, 这里的工作线程与UI线程是相对的,即没有任何窗口的. 如果需要与主线程或其它辅助线程通讯,有几种方法如事件,消息,信号等,也可以是以上几种方法的综合运用.下面就列出以下3种通讯方法的代码框架 (1)只用消息通讯 1 DWORD ThreadProc(LPVOID lParam) 2 { 3 //创建线程消息队列原创 2012-11-28 20:59:14 · 1173 阅读 · 0 评论 -
VC 多线程编程 blogdown整理
VC 多线程编程 一、问题的提出 编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() {原创 2012-11-28 20:55:31 · 274 阅读 · 0 评论 -
在多线程中抛出的异常出错?
在多线程中抛出的异常出错? 以下以win32平台为例。我们先看一个非多线程的程序: #include iostream> #include windows.h> DWORD WINAPI thread_func(LPVOID pN) { for (int i = 0; i *((int*)pN); ++i) { std::cout i+1 "\t原创 2012-11-28 20:54:18 · 1074 阅读 · 0 评论 -
什么才是多线程安全的
对于多线程编程,很多人概念不清,写代码的时候要么是处处加锁,影响性能不说,还容易莫名其妙的死锁,还有人对多线程敬而远之。 所以学习多线程编程最重要的不是学习API,而是理解什么才是多线程安全的代码 从例子说起 #include #include long global1 = 0; volatile long global2 = 0; class MyCla原创 2012-11-28 20:53:54 · 296 阅读 · 0 评论 -
Visual C++线程同步技术
Visual C++线程同步技术 线程同步的方式有: 临界区 管理事件内核对象 信号量内核对象 互斥内核对象 分别介绍如下: 使线程同步 在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。原创 2012-11-28 20:52:58 · 258 阅读 · 0 评论 -
多线程编程浅析(1)——概述
多线程编程浅析(1)——概述 线程,是在进程内部又细分的一个执行单元,他们都是由操作系统来进行划分控制的。系统创建好进程后,实际上就启动执行了该进程的主执行线程,主执行线程以函数地址形式,比如说main或WinMain函数,将程序的启动点提供给Windows系统。主执行线程终止了,进程也就随之终止。每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系统自动创建的。用户根原创 2012-11-28 20:52:23 · 256 阅读 · 0 评论 -
多线程编程浅析(3)——多线程的互斥与同步
多线程编程浅析(3)——多线程的互斥与同步 在进行多线程编程时,难免还要碰到两个问题,那就线程间的互斥与同步: 线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。 线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,原创 2012-11-28 20:51:47 · 312 阅读 · 0 评论 -
使用PostThreadMessage在Win32线程间传递消息
PostThreadMessage的原型是这样的 BOOL PostThreadMessage( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam ); PostThreadMessage可以用于线程之间的异步通讯,因为它不用等待调用者返回, 这也许是线程通讯中最简单的一种方法了。 但是原创 2012-11-28 20:51:21 · 367 阅读 · 0 评论 -
VC++多线程中线程之间的通信问题研究
当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可想象的。因此掌握多线程多任务设计方法对每个程序员都是必需原创 2012-11-29 19:22:14 · 430 阅读 · 0 评论