拾题
首页 / 软考真题 / 构件交互 / 第 1 题

面向构件的编程目前缺乏完善的方法学支持,构件交互的复杂性带来了很多问题,其中(36)问题会产生数据竞争和死锁现象

单选题

面向构件的编程目前缺乏完善的方法学支持,构件交互的复杂性带来了很多问题,其中(36)问题会产生数据竞争和死锁现象

A. 多线程

B. 异步

C. 封装

D. 多语言支持

答案:A

解析

答案:A. 多线程

多线程环境下,多个构件可能并发访问共享资源,若缺少同步,就会出现数据竞争;若线程互相持有对方所需锁并等待,就会形成死锁。因此该问题对应多线程。

  • A 多线程:正确。并发共享状态是数据竞争和死锁的典型来源。
  • B 异步:异步强调调用不阻塞,本身不等于多线程共享资源竞争,虽可能引入并发问题,但不如 A 直接。
  • C 封装:封装用于隐藏实现、降低耦合,是构件设计原则,不会直接导致数据竞争或死锁。
  • D 多语言支持:多语言互操作主要带来通信、类型映射等问题,不是数据竞争和死锁的直接原因。

考点延伸:Java 中可用 synchronized、ReentrantLock、JUC 并发工具保证原子性、可见性、有序性;死锁需满足互斥、持有并等待、不可剥夺、循环等待四个条件,排查可用 jstack。

本单元其他题目

在拾题里做这套题