线程进程
文章平均质量分 70
chenchong_219
这个作者很懒,什么都没留下…
展开
-
多线程编程
多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平。 其实C++语言本身并没有提供多线程机制,但Windows系统为我们提供了相关API,我们可以使用它们来进行多线程编程。本文就以实例的形式讲解多线程编程的知识。 创建线程的API函数C++代码HAN转载 2013-03-31 11:38:05 · 782 阅读 · 0 评论 -
进程间通信 —— 命名管道
要点:1、引子好,到这里呢,就需要介绍实现进程间通信的第四种方式了,也就是通过命名管道来实现,前面介绍的那三种方式呢,都是有缺陷或者说局限性太强,而这里介绍的命名管道相对来说,在这方面就做得好很多了,比如,剪贴板的话只能实现本机上进程之间的通信,而邮槽的话虽然是可以实现跨网络之间的进程的通信,但麻烦的是邮槽的服务端只能接收数据,邮槽的客户端只转载 2014-06-15 22:51:51 · 1279 阅读 · 0 评论 -
进程间通信——剪切板
要点:1引子由于在启动一个进程后,操作系统会给这个进程分配 4GB 的私有地址空间,至于为何有 4GB 这么大,那得考虑进程的私有地址空间和实际物理内存地址空间之间的映射以及页交换等等细节问题了,这里不予讨论,从名字就可以知道,既然操作系统给每一个进程分配的是私有地址空间,自然,这段地址空间也只有这个进程自己才能访问了,不然还称为私有干吗呢?既然这段私有转载 2014-06-15 22:02:20 · 3691 阅读 · 0 评论 -
进程间通信 - 邮槽实现
要点:1、引子前面的一篇博文介绍了进程之间通信的一种最为简单的方式,也就是在本地进程之间通过剪贴板来实现进程间通信,而剪贴板自有其缺陷,很显然的是,剪贴板只能在本地机器上实现,无法实现本地进程与远程服务器上的进程之间的通信,那么有没有办法实现本地进程和远程进程的通信呢?办法自然是有的,要是实在搞不出,我拿 Socket 来转载 2014-06-15 22:27:59 · 928 阅读 · 0 评论 -
自旋锁和互斥锁区别
POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提转载 2014-03-11 22:41:09 · 639 阅读 · 0 评论 -
秒杀多线程第一篇 多线程笔试面试题汇总
秒杀多线程第一篇 多线程笔试面试题汇总本系列是本人参加微软亚洲研究院,腾讯研究院,迅雷面试时整理的,另外也加入一些其它IT公司如百度,阿里巴巴的笔试面试题目,因此具有很强的针对性。系列中不但会详细讲解多线程同步互斥的各种“招式”,而且会进一步的讲解多线程同步互斥的“内功心法”。有了“招式”和“内功心法”,相信你也能对多线程挥洒自如,在笔试面试中顺利的秒杀多线程试题。转载 2014-02-22 22:01:16 · 1015 阅读 · 0 评论 -
C++在类中创建线程
1、使用_beginthread#include //sleep#include #include //_beginthreadusing namespace std;class A{public:A(){_beginthread(Agent, 0, (void*)this);}void run(){int i = 0;whil原创 2013-05-13 00:03:04 · 1234 阅读 · 0 评论 -
多线程火车票售票系统——自动重置事件对象实现线程同步
#include #include DWORD WINAPI Fun1Proc(LPVOID lpParameter);DWORD WINAPI Fun2Proc(LPVOID lpParameter);int index = 0;int tickets = 100;HANDLE g_hEvent; //全局事件对象句柄 如果是进程间,必须用命名的方式,在另外一个进转载 2013-04-04 00:41:06 · 1350 阅读 · 0 评论 -
多线程——让多核CPU单核运行
开始-运行,输入“msconfig”,回车。boot.ini-高级选项,把“numproc”前面的勾打上,然后把后面的数字调整为"1",确定,确定,重启计算机,生效。转载 2013-05-17 21:58:00 · 1630 阅读 · 0 评论 -
自动重置事件对象与人工重置事件对象
1、自动重置事件对象。#include #include using namespace std;DWORD WINAPI Fun1Proc(LPVOID lpParameter);DWORD WINAPI Fun2Proc(LPVOID lpParameter);DWORD WINAPI Fun3Proc(LPVOID lpParameter);HANDL原创 2013-05-17 23:13:01 · 1647 阅读 · 0 评论 -
多线程火车票售票系统——人工重置事件对象实现线程同步(会有问题的)
#include #include DWORD WINAPI Fun1Proc(LPVOID lpParameter);DWORD WINAPI Fun2Proc(LPVOID lpParameter);int index = 0;int tickets = 100;HANDLE g_hEvent; //全局事件对象句柄void main(){HAN转载 2013-04-04 00:31:13 · 1258 阅读 · 0 评论 -
多线程火车票售票系统——互斥对象实现线程同步
1、利用互斥对象实现线程同步#include #include DWORD WINAPI Fun1Proc(LPVOID lpParameter);DWORD WINAPI Fun2Proc(LPVOID lpParameter);int index = 0;int tickets = 100;HANDLE hMutex; //全局互斥对象句柄void ma转载 2013-04-03 23:19:24 · 1919 阅读 · 0 评论 -
多线程同步——互斥、事件、临界区区别
1、互斥对象和事件对象是内核对象。速度慢,可以在多个进程的各个线程间进行同步。2、临界区:工作在用户方式下,速度快。但是无法设置超时时间,容易产生死锁。只能用于对象在同一进程里线程间的互斥访问。适合控制数据访问。 3、临界区和互斥对象在Windows平台都下可用;Linux下只有互斥对象可用。用途:四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或原创 2013-04-04 01:02:22 · 1258 阅读 · 0 评论 -
多线程火车票售票系统——临界区实现线程同步
#include #include DWORD WINAPI Fun1Proc(LPVOID lpParameter);DWORD WINAPI Fun2Proc(LPVOID lpParameter);int index = 0;int tickets = 100;CRITICAL_SECTION g_cs; // 临界区对象 void main()转载 2013-04-04 00:49:05 · 1117 阅读 · 0 评论 -
多线程简单示例
1、示例代码#include //访问API函数#include#include #include DWORD WINAPI Fun1Proc(LPVOID lpParameter);void main(){HANDLE hThread1;hThread1 =CreateThread(NULL,0,Fun1Proc,NULL,0,NULL); /转载 2013-04-03 22:31:09 · 499 阅读 · 0 评论 -
进程间通信——共享内存
1、由操作系统分配的一块内存,被映射到多个进程的地址空间。每当有一个进程进行了映射,共享内存计数器会+1。2、编程模型:(1)创建共享内存(2)建立映射(3)解除映射一则简单的Windows共享内存IPC代码 Windows共享内存可以让两个进程对同一块内存进行读写。以下有2个进程,a.cpp生成A进程,b.cpp生成b进程。那么a进程将不停地读名为"G转载 2013-03-31 12:02:24 · 766 阅读 · 0 评论 -
进程间通信——匿名管道
要点:1、进程间通信 - 匿名管道实现引子前面的两篇博文分别介绍了通过剪贴板和通过邮槽来实现进程之间的通信,其中剪贴板呢,是用来实现本地两个进程之间的通信,而邮槽则既可以实现本地两个进程之间的通信,也可以实现本地进程和服务器进程的通信,当然,上面这两种方式都是有局限性的,比如剪贴板就只能实现本地进程之间的通信,而在邮槽中,虽然是既可以实现转载 2014-06-15 22:42:43 · 609 阅读 · 0 评论