首页 > 试题广场 >

题目来源于王道论坛 进程P1和P2均包含并发

[单选题]
题目来源于王道论坛

进程P1P2均包含并发执行的线程,部分伪代码描述如下所示。

下列选项中,需要互斥执行的操作是


  • a =1与a = 2
  • a = x与b = x
  • x += 1与x += 2
  • x += 1与x += 3
推荐

解析:

P1中对a进行赋值,并不影响最终的结果,故a=1a=2不需要互斥执行;a=xb=x执行先后不影响ab的结果,无需互斥执行;x+=1x+=2执行先后会影响x的结果,需要互斥执行;P1中的xP2中的x是不同范围中的x,互不影响,不需要互斥执行;

发表于 2018-06-16 11:15:47 回复(5)
<p>a=x与b=x 是利用同步,而不是使用互斥</p>
发表于 2020-07-01 08:04:29 回复(0)
1、同一进程中线程之间的局部变量不会相互影响,不需互斥;对于成员变量由于是共享的,所以只要改变就需要互斥
2、不同进程之间的变量不一样,互不影响,不需要互斥
故需要互斥的有p1的x+=1与x+=2,以及p2中的x+=3与x+=4
发表于 2019-04-20 10:30:57 回复(0)
对线程的局部变量赋值不会影响彼此。
线程共享进程的全局变量,对全局变量的修改应当避免并行。
发表于 2018-11-15 20:44:01 回复(1)
进程有各自的地址空间,这里所有的变量都在各个进程中创建的,因此进程间不需要互斥。
线程共享所在进程的地址空间和数据。在p1和p2中各创建了一个x,a,这两个x在不同的进程空间,因此左右两个进程及他们的线程与对方的线程之间都不需要互斥。只用考虑进程内部的线程。
对于进程P1,两个线程有一个共享的变量x,因此x+=1,x+=2需要互斥,每个线程都拥有一个私有a,a不需要互斥。
同理x+=3与x+=4需要互斥。
发表于 2020-01-06 20:39:57 回复(1)
1、同一进程中线程之间的局部变量不会相互影响,不需互斥,即a 、b皆为线程下定义的变量,且不同线程之间有各自的栈空间,故不需要互斥。
2、不同进程之间内存空间不同,不相互影响,故不需要互斥。
3、进程的全局变量会相互影响,需要互斥;进程下的全局变量定义在堆空间中,仅此一份,故需要互斥访问。
发表于 2021-12-02 18:26:37 回复(0)
是不是可以理解成:同一个村子(进程P1)里,有两户人家的人都叫王某(局部变量),他俩之间不会互相影响,但是他俩同时想要追村长女儿(全局变量),就会发生冲突(互斥)😵
发表于 2023-07-10 00:34:28 回复(0)
a不需要互斥是因为是局部变量,存在于私有区,即不同线程的a根本不是一个东西!x如果在不同线程里,如果在同一进程里,那就是共享的,需要互斥。如果不在同一进程里,也不是一个东西,不需要互斥。
发表于 2021-12-23 16:48:23 回复(0)
同一进程不同的线程对全局变量互斥访问 同一进程不同的线程对各自线程没的变量没有限制 不同进程对变量访问没有限制
发表于 2020-12-12 05:16:06 回复(0)
同一进程中的局部变量不会影响
a在题中为各自线程的局部变量,不会产生干扰
x是全局变量会产生干扰
发表于 2020-09-04 14:22:16 回复(0)
1. a是局部变量,排除对a的互斥
2. 排除进程间的互斥
选C
发表于 2019-09-14 23:48:01 回复(0)
x+=3,和x+=4也是对的,犯了思维上的错,认为必须都加锁才是正确选项。选项c是对的。。。
发表于 2019-08-01 09:17:14 回复(0)

X+=3 X+=4当然也是啦


发表于 2018-11-06 01:20:17 回复(0)