多线程运行一个进程不会出现问题吗

对于一个进程,如果采用多线程方式运行,多个线程的确是能同时运行,并提高时间效率,但是多个线程同时运行一个程序不会出现并发问题吗?比如两个线程使用一个变量,如果第一个线程修... 对于一个进程,如果采用多线程方式运行,多个线程的确是能同时运行,并提高时间效率,但是多个线程同时运行一个程序不会出现并发问题吗?比如两个线程使用一个变量,如果第一个线程修改了该变量,第二个线程再使用,不是就出问题了吗?另外,对于一个函数,使用多线程的话,那多个线程也不能同时运行啊,肯定是按照程序代码的顺序依次执行啊,求解? 展开
 我来答
poseidon_k
2012-09-13 · TA获得超过2580个赞
知道小有建树答主
回答量:1223
采纳率:0%
帮助的人:318万
展开全部
多个线程同时运行一个程序不会出现并发问题吗?
就是因为会出现同步问题,所以每个操作系统都会采取一系列的线程同步机制啊。

两个线程使用一个变量,如果第一个线程修改了该变量,第二个线程再使用,不是就出问题了吗?
是的,这种情况被称为竞争,操作系统会提供临界区、旋转锁、互斥量、信号量等对象对多个线程竞争的资源进行保护,确保该资源在某一时间只有一个线程对它进行操作。

对于一个函数,使用多线程的话,那多个线程也不能同时运行啊,肯定是按照程序代码的顺序依次执行啊?
由于一个进程的所有线程共享该进程的内存空间,且代码段只读不可写,所以多个线程同时执行一个函数的代码段是可行的,只是系统会为每个线程开辟各自独立的函数栈,所以虽然每个线程可能同时执行一个函数,但拥有一份属于自己的局部变量,互不干扰。
追问
你的立脚点是一个线程执行一个函数,一个函数(比如说main),难道就不能由多个线程相互配合,共同完成吗?
追答
多个线程本来就是相互配合的啊,要不用多线程干什么,你是想问多个线程都执行同一个函数?上面已经说了啊,多个线程同时执行同一个函数的代码段是可行的。
creater2012
2012-09-14 · TA获得超过156个赞
知道小有建树答主
回答量:311
采纳率:0%
帮助的人:154万
展开全部
1.不采取同步措施的话会出现你所谓的并发问题,多线程编程的关键就是同步。
2.对于函数,代码是共享,而函数中的变量不共享,所以任意多个线程执行相同的函数都不会出现问题。 (前提是这个函数中不存在全局变量)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式