MFC关于线程堆栈的变量的计算问题

问题描述

MFC关于线程堆栈的变量的计算问题

MFC怎么样定义结构体数组才能让这个结构体数组都放在线程的堆栈上?是不是线程堆栈上的变量的计算不会导致共享的问题?

解决方案

堆栈上的变量不需要同步,因为每个线程有自己的堆栈
具体参考:http://blog.csdn.net/mynote/article/details/5835615

解决方案二:

把数据放到栈上,就是线程独有的,每个线程都访问自己的堆栈数据

解决方案三:

局部变量(在函数内部定义的变量,包括函数的参数)是在堆栈中,正常情况不会导致共享冲突,因为它没被多个线程共享,但是如果你在函数中创建多个线程,并将局部变量的地址传给线程中处理,那它也就被共享了,当然会导致问题。

时间: 2025-01-21 06:44:52

MFC关于线程堆栈的变量的计算问题的相关文章

MFC什么情况需要锁定线程里的变量?

问题描述 MFC什么情况需要锁定线程里的变量? MFC什么情况需要锁定线程里的变量?为什么锁定了变量计算结果还是不稳定?感觉和计算顺序有关系,谁能详细解释下? 解决方案 什么叫结果不稳定,贴出你的程序和结果出来看下.

MFC函数线程计算,怎么根据行号执行?

问题描述 MFC函数线程计算,怎么根据行号执行? MFC函数线程计算,能不能从输入的代码行开始执行,而不从函数开始的地方执行?怎么根据行号执行? 解决方案 这个不能根据行号执行,只能在程序开头用goto语句来跳转.

new,is和as运算符解析及运行时类型,对象,线程堆栈,托管堆之间的联系

CLR要求对象必须使用new运算符创建,在使用new运算符创建一个对象时具体都做了些什么呢? 1.计算所有定义的实例字段,所有的基类型包括System.Object需要分配的字节数. 每一个堆上的对象还需要两个额外的成员:类型对象指针 和同步块索引,CLR使用它们来管理对象.它们两个需要的字节数算在对象的大小里面. 2.从托管堆分配对象需要的字节数(也就是给对象分配内存).所有的字节置为0 3.初始化类型对象指针 和同步块索引 4.调用实例构造器.大多数编译器自动生成调用基类构造器的代码.最终会

MFC判断线程是否执行过,有没有更好的思路呢?

问题描述 MFC判断线程是否执行过,有没有更好的思路呢? MFC判断线程是否执行过.我的思路是使用数组来记录,可是数组的长度是很难更改的,有没有更好的思路呢? 解决方案 用stl vector集合来记录就是了.用push_back 解决方案二: 那不用数组用链表? 或者在主线程设置一个变量,附加线程运行的时候sendmessage改变变量,通过这个变量来判断线程是否执行过.

MFC工作线程中获得视图类指针问题

今天写的代码很无语,原来稳稳妥妥的代码,在线程中却神乎其神的不管用了.我查了网上的资料,只收集到一位高手的留言: 通常来讲,在MFC中,跨线程是不能传递CWnd对象指针的.因为在每个线程中都有一个自己的内部map,该map记录了HWND和与之对应的CWnd对象.当一个CWnd对象被创建时,它的HWND和CWnd对象指针就会被记录到该线程中的map,但其他的线程的map没有记录. 当跨线程传递CWnd指针时,调用CWnd的某些函数时,这些函数会进行有效性检查,也就是检查map,因为map中没有相应

mfc中如何在一个cstring变量中查找另一个cstring变量然后删除掉!

问题描述 mfc中如何在一个cstring变量中查找另一个cstring变量然后删除掉! 例如 cstring a; cstring b; 在a中查找b,找到后删除! 求大神指导啊! 解决方案 最简单的 cstring a = "abc"; cstring b = "b"; a = a.replace("b", ""); 解决方案二: CString a="123abc56a"; CString b=&qu

weblogic 9.2 内存泄露问题 转储线程堆栈

问题描述 最近客户的一个生产环境经常当机,我们的环境是一个主服务,下面有两个收管服务,但时间上只有一个收管服务app1在用,另外一个app2服务只是备用无法访问,有两应用包.主服务的JVM分配512MB,其他连个收管服务各2GB内存空间.今天快下班时app1监控到可用堆栈是0%,点击"转储线程堆栈",显示如下内容,请高手帮忙分析.此页中显示了每个线程的当前堆栈."MultiThreadedHttpConnectionManagercleanup"waitingfor

深入JVM剖析Java的线程堆栈_java

在这篇文章里我将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因.在我看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术.在线程堆栈中存储的信息,通常远超出你的想象,我们可以在工作中善加利用这些信息. 我的目标是分享我过去十几年来在线程分析中积累的知识和经验.这些知识和经验是在各种版本的JVM以及各厂商的JVM供应商的深入分析中获得的,在这个过程中我也总结出大量的通用问题模板. 那么,准备好了么,现在就把这篇文章加入书签,在后续几周中我会给大家带来这一系列的专

请问MFC跨线程能不能调用对方线程里正在运行的函数?

问题描述 请问MFC跨线程能不能调用对方线程里正在运行的函数? 请问MFC跨线程能不能调用对方线程里正在运行的函数?怎么得到当前正在运行的线程运行的是哪一个函数的函数名?谢谢 解决方案 可以让每个线程在执行自己的时候先将函数名放在全局变量中,这样可以通过别的线程进行检索. 解决方案二: 如何在c语言中调用一个函数,使其运行在NSRunLoop的线程中一个函数能否被两个线程同时调用