2 qq 32364455 qq_32364455 于 2016.04.10 15:06 提问

c++里调用线程函数和直接调用函数的区别

我在自学windows程序设计,有关进程和线程的概念不太清楚。如题,两者区别是调用线程函数不影响主线程的进行,而直接调用函数需要等待函数返回,不知道我这样理解对不对,恳请前辈们指教。

2个回答

Lc_BoYi
Lc_BoYi   2016.04.10 15:19
已采纳

多线程。每个线程都是顺序执行,即上一条语句完成后才进行下一条语句。 你直接调用函数就必须等他返回结果后才能执行下一条语句,所以线程就需要等待函数执行完毕。
而调用线程函数就是另外启动一个线程去执行这个函数,主线程不必等待该线程的结束返回,两个线程可以同时运行。所以主线程就不用等待。

qq_32364455
qq_32364455 谢谢,明白了。
2 年多之前 回复
bdmh
bdmh   Ds   Rxr 2016.04.10 15:40

每个exe启动就是一个进程,它包括一个主线程,你可以在这个进程里创建多个线程

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
如何在c语言中调用一个函数,使其运行在NSRunLoop的线程中
思路 1 建立一个NSObject子类,内部创建NSThread。Thread中运行NSRunLoop。 2 使用perform函数,将运行的函数运行在启动的Thread。 #import @interface DLRunloopModel : NSObject @property(nonatomic, strong) NSThread *mThread; -(void) doSom
c# 中委托和直接函数调用用什么区别,好处和目的在哪?
<br />以一个例子说明: <br />//定义原形 <br />public delegate void MessageEventHandler(object sender, EventArgs e); <br />public event MessageEventHandler MessageReceived; <br /><br />//注册事件 <br />MessageReceived += new MessageEventHandler(HandleIt); <br /><br />//使用时
VC++多线程函数调用
在VC++中创建线程函数可以用API 或者MFC封装的多线程函数。。      函数原型 MSDN中CreateThread原型: HANDLE CreateThread(   LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD   SIZE_T dwStackSize, // initial stack size   LPTH
子线程 run() 函数中,调用其他函数
class TestObj: public QObject {     Q_OBJECT public:     void EmitSig()     {         emit sigTest();//都是在子线程中,     }     signals:         void sigTest(); }; TestThread::TestThread
回调函数和普通函数的区别
1、区别不是太大,
JS函数直接调用和new的区别
JS中函数既可以直接调用,也可以使用new关键字来构造。那么他们的区别是什么呢?来看一段代码:var a = 1; function main() { console.log(a); var a = 2; console.log(this.a); this.a = 3; }main(); new main(); 输出结果: undefined 1 un
js new一个函数和直接调用函数的区别
用new和调用一个函数的区别:如果函数返回值是一个值类型(Number、String、Boolen)时,new函数将会返回这个函数的实例对象,而如果这个函数的返回值是一个引用类型(Object、Array、Funtion)时,new函数和直接调用函数的结果相同。测试代码如下:     /*//工厂模式     function Person(name,age)     {  
消息机制和使用调用函数方式有何区别
消息机制是排队处理方式,windows存在一个系统队列,每当一个应用程序或一个线程发生一个事件或需要处理事务的时候并不是直接调用应用程序中的函数,而是把需求打包,向windows申请调用。 系统根据调度机制,从队列中取得一个消息包,拆箱,检查内容,根据其来源,将消息包重新打包,发送给该包指定的应用程序队列。应用程序回调函数循环监视应用程序队列,根据消息包参数处理不同事务,执行完后将控制权释放。
在MFC中类内部建立线程处理函数以便调用类的成员函数和变量
在用MFC做开发时,有时遇到些工作线程zhong
C#线程函数调用方式
C#中线创建线程调用线程函数有2种方式: 1,调用不带参数的线程函数 2,调用带参数的线程函数         在不传递参数情况下,一般大家都使用ThreadStart代理来连接执行函数。执行函数声明格式如下: public static void ThreadProc(); 如果希望传递参数给执行函数,则使用ParameterizedThreadStart代理来链接执行函