所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

c++有没有线程的概念?

发布时间:2020-04-12 08:40:53

资讯分类:线程  有没有  概念  线程  执行  程序
c++有没有线程的概念?

1、进程的概念你应该知道吧?在任务管理器中我们就能看到,一般情况下,我们当前运行的每一个程序就是一个进程。比如QQ.exe。

一个进程中会有多个线程。每个线程都在同时进行。

2、线程可以实现程序的并行。其实说是并行,实际操作上还是串行的。比如,两个线程p1,p2.我让两个都运行,程序会执行一句p1的代码后,执行一句p2的代码,再回到p1,再p2,二者交替进行。而正常我们运行程序,除非p1代码执行完,否则不会执行其他的任务。

举个例子。现在有一个循环,每秒钟随机显示一个数(在1-100之间)。我现在要在显示50的时候,在屏幕上显示一行字。此时,可以写一个函数,判断值是否为50,如果是则显示一行字。然后并把这个函数声明为线程,这样就会实时的监视。

3、线程跟这些没什么特别的关系。你只要按照线程的定义写就可以了,线程开始后就会执行你定义的代码。

ps:上面的那个例子也完全可以在程序中判断数值,不必开辟新线程。

再看这样一个例子,我要做一个软件。功能很简单,只有一个界面,上面有一个按钮,按下后执行一个函数,然后在屏幕显示一个结果。但是,这个函数要执行5分钟。

如果不用线程技术,效果是这样的:按下按钮,整个界面都卡住了(当然,其他的程序还可以运行,因为他们之间是并行的),在界面卡住5分钟后,会显示一个结果。这种情况,用户会以为程序死掉了。如果将次函数写作一个线程,那么主线程会继续绘制页面,完全没有卡住的状况。你还可以在界面加上进度条。主进程和函数进程看起来貌似并行了。

留言与评论(共有 0 条评论)
   
验证码:
Top