首页 > 试题广场 >

下面说法哪个正确的:

[单选题]

下面说法哪个正确的:

  • 各个线程拥有相同的堆栈
  • i++是线程安全的,不需要同步
  • x=y是线程安全的,不需要同步
  • 对进程来说,其虚拟内存的大小不受物理内存大小的限制
D
线程有自己的栈,但没有堆所以A错。普通整数的一般赋值、增量和减量语句会产生多条机器指令,操作均不具有原子性,需要同步,BC错。虚拟存储器具有请求调入和置换功能,所以虚拟内存的大小不受物理内存大小的限制。D对
发表于 2015-08-08 16:01:10 回复(6)
D。进程的虚拟内存大小并不受物理内存大小的限制,例32位处理器虚拟内存空间可能是4G,但物理内存实际是小于4G的,部分地址空间分配给了ROM、外设等。
A,各个线程有自己的堆和栈,并不相同。
B,i++操作不一定是原子性操作,CPU在执行时可能需要几条指令才能完成,包括读内存内容到寄存器,操作寄存器,从寄存器写回内存。
C,同B。
发表于 2015-08-12 14:58:53 回复(3)
线程有自己的栈,但没有堆。 普通整数的一般赋值、增量和减量语句会产生多条机器指令,操作均不具有原子性,需要同步。 虚拟存储器具有请求调入和置换功能,所以虚拟内存的大小不受物理内存大小的限制。
发表于 2021-11-24 11:04:20 回复(0)
A 每个线程都有自己的栈 然后共同访问同一个堆
BC 整数操作会产生多条机器指令 不具原子性

发表于 2015-09-15 16:40:20 回复(0)
D   虚拟内存是地址位数,物理内存是磁盘空间,所以 虚拟内存是地址位数,物理内存是磁盘空间是正确的
发表于 2016-05-11 16:49:53 回复(1)
虚拟内存的大小和寻址范围的大小不一样。
发表于 2015-09-15 15:24:49 回复(0)

A是错误的说法。各个线程拥有独立的堆栈空间,每个线程都有自己的栈帧和局部变量。

B是错误的说法。i++操作不是线程安全的,当多个线程同时对i进行自增操作时,可能会出现竞态条件(race condition),导致结果不确定。

C是错误的说法。x=y操作不一定是线程安全的,如果多个线程同时对x和y进行读写操作,可能会出现竞态条件,导致结果不确定。

D是正确的说法。对进程来说,虚拟内存的大小是由操作系统控制和管理的,不受物理内存大小的限制。虚拟内存可以大于物理内存,通过使用页面置换技术,将部分虚拟内存映射到物理内存中。这样可以让进程使用更多的内存,而不受物理内存大小的限制。

发表于 2023-09-12 17:49:49 回复(0)
虚拟内存最大值为CPU最大寻址值,物理内存最大值为内存条最大值,二者没有限制关系,内存最大值都受限于CPU寻址最大值。
发表于 2023-10-17 10:42:41 回复(0)
线程有自己的栈,但没有堆 对进程来说,其虚拟内存的大小不受物理内存大小的限制。
编辑于 2023-07-08 10:58:15 回复(0)
C 如果x,y是基础类型,那么是线程安全的
    如果x,y是自定义类型,如很大的一个结构体,那么不能保证线程安全
发表于 2023-05-09 10:51:52 回复(0)
堆栈(英语:stack)又称为栈或堆叠
发表于 2021-09-03 09:46:29 回复(0)
虚拟内存是地址位数,内存是磁盘空间
发表于 2020-07-19 07:57:39 回复(0)
(1)每一个线程都有自己的栈
(2)普通整数的赋值
(3)增量和减量语句(操作不具备原子性,需同步)
(4)进程进行调度运行时,由于存在虚拟存储器机制,所以再大的进程都不受物理内存大小的限制
发表于 2016-08-05 09:40:43 回复(0)
个人觉得x=y不需要同步 求解答
发表于 2015-08-31 23:29:47 回复(3)