多线程
文章平均质量分 82
0909LQ
小陈醋的代码进阶之路
展开
-
_beginthreadex()和CreateThread()的区别 为什么不用_beginthread()?
如果在代码中会调用C中的标准库函数,我们最好使用_beginthreadex(),因为在用到标准库函数时,会用到一些全局变量,如errno,很多库中的函数调用出错时,会将错误信息赋给这个变量,这样会方便调试。但是如果我们开两个线程A,B,如果A中的标准库函数报错了,把错误信息赋给errno,这样线程B用到errno时,就会报错。当然这种情况我们应该尽量避免。_beginthreadex()原创 2015-08-22 10:31:00 · 569 阅读 · 0 评论 -
如何在C++类中安全地使用多线程中的处理函数
首先我们有必要了解清楚成员函数实际上如何工作的,一个非静态的类成员函数都有一个隐藏起来的参数被推入堆栈之中,当编译器需要处理类的成员变量时,它需要处理类的成员变量时,它需要这个隐藏参数的帮忙。这就是"this"参数。因此,ThreadObject::ThreadObject(LPVOID param)(线程处理函数)事实上有两个参数,一个是this指针,另一个是param.当操作系统启动一个新原创 2015-08-23 20:04:26 · 1311 阅读 · 0 评论 -
c++多线程同步使用的对象
转自:http://blog.csdn.net/gukesdo/article/details/6857249线程的同步Critical section(临界区)用来实现“排他性占有”。适用范围是单一进程的各线程之间。它是:· 一个局部性对象,不是一个核心对象。· 快速而有效率。· 不能够同时有一个以上的cri转载 2015-08-24 15:45:01 · 353 阅读 · 0 评论 -
Event C++初识
CreateEvent函数详解参见本博客文章:c++中CreateEvent函数解析(2)HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes,BOOL bManualReset, BOOL bInitialState,LPCSTR lpName);bManualReset:TRUE,使用Res转载 2015-08-20 18:29:10 · 439 阅读 · 0 评论 -
多客户端服务器网络编程
这是一个基于windows的,用C++编写的客户端服务器程序,适合初学者,高手误入.源码必共享思路是这样的.启动服务器,服务器启动后会创建一个子线程,用于向客户端发送信息.用一个死循环用于接收客户端的请求,客户端请求成功后,会将客户端的连接保存到一个集合中,下面会详细介绍这个保存客户端连接的类.客户端连接成功后,服务器会创建一个子线程用于接收客户端的信息,客户端同样也会创建一个子线程接收服转载 2015-08-29 17:19:08 · 468 阅读 · 0 评论 -
进程线程及堆栈关系的总结
问题1. local 变量的压栈和出栈过程void func1(){ int a = 0; int b = 0;}系统中有一个栈顶指针,每次分配和回收local 变量时,其实就是移动栈指针。2. static local变量的分配风险void func2(){ static int a = 0;}这个变量a可能会被分配多次,因为如果转载 2015-09-29 10:08:22 · 497 阅读 · 0 评论