c++有没有线程的概念
1个回答
展开全部
1、进程的概念你应该知道吧?在任务管理器中我们就能看到,一般情况下,我们当前运行的每一个程序就是一个进程。比如QQ.exe。
一个进程中会有多个线程。每个线程都在同时进行。
2、线程可以实现程序的并行。其实说是并行,实际操作上还是串行的。比如,两个线程p1,p2.我让两个都运行,程序会执行一句p1的代码后,执行一句p2的代码,再回到p1,再p2,二者交替进行。而正常我们运行程序,除非p1代码执行完,否则不会执行其他的任务。
举个例子。现在有一个循环,每秒钟随机显示一个数(在1-100之间)。我现在要在显示50的时候,在屏幕上显示一行字。此时,可以写一个函数,判断值是否为50,如果是则显示一行字。然后并把这个函数声明为线程,这样就会实时的监视。
3、线程跟这些没什么特别的关系。你只要按照线程的定义写就可以了,线程开始后就会执行你定义的代码。
ps:上面的那个例子也完全可以在程序中判断数值,不必开辟新线程。
再看这样一个例子,我要做一个软件。功能很简单,只有一个界面,上面有一个按钮,按下后执行一个函数,然后在屏幕显示一个结果。但是,这个函数要执行5分钟。
如果不用线程技术,效果是这样的:按下按钮,整个界面都卡住了(当然,其他的程序还可以运行,因为他们之间是并行的),在界面卡住5分钟后,会显示一个结果。这种情况,用户会以为程序死掉了。如果将次函数写作一个线程,那么主线程会继续绘制页面,完全没有卡住的状况。你还可以在界面加上进度条。主进程和函数进程看起来貌似并行了。
一个进程中会有多个线程。每个线程都在同时进行。
2、线程可以实现程序的并行。其实说是并行,实际操作上还是串行的。比如,两个线程p1,p2.我让两个都运行,程序会执行一句p1的代码后,执行一句p2的代码,再回到p1,再p2,二者交替进行。而正常我们运行程序,除非p1代码执行完,否则不会执行其他的任务。
举个例子。现在有一个循环,每秒钟随机显示一个数(在1-100之间)。我现在要在显示50的时候,在屏幕上显示一行字。此时,可以写一个函数,判断值是否为50,如果是则显示一行字。然后并把这个函数声明为线程,这样就会实时的监视。
3、线程跟这些没什么特别的关系。你只要按照线程的定义写就可以了,线程开始后就会执行你定义的代码。
ps:上面的那个例子也完全可以在程序中判断数值,不必开辟新线程。
再看这样一个例子,我要做一个软件。功能很简单,只有一个界面,上面有一个按钮,按下后执行一个函数,然后在屏幕显示一个结果。但是,这个函数要执行5分钟。
如果不用线程技术,效果是这样的:按下按钮,整个界面都卡住了(当然,其他的程序还可以运行,因为他们之间是并行的),在界面卡住5分钟后,会显示一个结果。这种情况,用户会以为程序死掉了。如果将次函数写作一个线程,那么主线程会继续绘制页面,完全没有卡住的状况。你还可以在界面加上进度条。主进程和函数进程看起来貌似并行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询