知识点标签

并发面试题解析第 3 页

并发相关面试题解析,按真实面经题目沉淀核心机制、易错点和面试官追问。

138 道题 14 个岗位 19 个公司

并发相关面试题第 3 页

如何实现多线程?

如何实现多线程?这道腾讯牛客题的关键是围绕“多线程实现方式”讲清概念、机制、取舍和边界。实现多线程要讲创建线程、任务执行、同步共享状态和生命周期收尾。C/C++ 常用 pthread_create 或 std::thread,Java 可用 Thread、Runnable、ExecutorService,Go 用 goroutine 但它是 runtime 调度的轻量协程。

要线程安全用什么Map?

要线程安全用什么Map?这道腾讯牛客题的关键是围绕“Java 线程安全 Map 选择”讲清概念、机制、取舍和边界。Java 线程安全 Map 通常优先考虑 ConcurrentHashMap。它通过分段或桶级别并发控制、CAS、volatile 和局部锁降低全表互斥成本,比 Hashtable 或 Collections.synchronizedMap 在高并发读写下更适合。

io密集型和cpu密集型如何分配线程,多分配线程数量还是少?

io密集型和cpu密集型如何分配线程,多分配线程数量还是少?这道腾讯牛客题的关键是围绕“CPU 密集与 I/O 密集线程数配置”讲清概念、机制、取舍和边界。CPU 密集型任务线程数通常接近 CPU 核数或 cores+1,避免过多线程争抢 CPU;I/O 密集型任务有大量等待时间,可以按 cores*(1+wait/compute) 估算更高线程数,再用压测校准。

为什么高并发场景下用unfair锁而不是fair?

为什么高并发场景下用unfair锁而不是fair?这道腾讯牛客题的关键是围绕“高并发下非公平锁取舍”讲清概念、机制、取舍和边界。高并发场景常用非公平锁,是因为它允许刚到达的线程在锁释放瞬间直接竞争成功,减少严格排队带来的线程唤醒、挂起和上下文切换成本。它牺牲一部分公平性,换取更高吞吐和更低平均调度开销。

fair锁如何实现的?

fair锁如何实现的?这道腾讯牛客题的关键是围绕“公平锁实现机制”讲清概念、机制、取舍和边界。公平锁的核心是按等待顺序授予锁,通常通过同步队列维护排队线程。以 ReentrantLock 公平模式为例,线程获取锁前会检查队列中是否已有前驱节点,有前驱就不插队,获取失败后进入 AQS 队列等待唤醒。

进程线程区别?

进程线程区别?这道腾讯牛客题的关键是围绕“进程与线程区别及上下文切换”讲清概念、机制、取舍和边界。进程是资源拥有和隔离单位,线程是同一进程内的调度执行单位。同一进程的线程共享地址空间、堆、全局变量和文件描述符,但有独立栈、寄存器上下文、线程局部存储和调度状态。

进程和线程有什么区别,线程优先级如何理解?

进程和线程有什么区别,线程优先级如何理解?这道腾讯牛客题的关键是围绕“进程线程区别与线程优先级”讲清概念、机制、取舍和边界。进程是资源隔离和拥有单位,线程是同一进程内的调度执行单位。同一进程线程共享地址空间、堆、全局变量和文件描述符,但有独立栈、寄存器、TLS 和调度状态。线程优先级要放到调度器语境理解,Linux 普通线程受 CFS/nice 权重影响,实时线程受 SCHED_FIFO/SCHED_RR 优先级影响。

进程和线程有什么区别?

进程和线程有什么区别?这道腾讯牛客题的关键是围绕“进程与线程区别及上下文切换”讲清概念、机制、取舍和边界。进程是资源拥有和隔离单位,线程是同一进程内的调度执行单位。同一进程的线程共享地址空间、堆、全局变量和文件描述符,但有独立栈、寄存器上下文、线程局部存储和调度状态。

进程间和线程间分别有哪些同步方式?

进程间和线程间分别有哪些同步方式?这道腾讯牛客题的关键是围绕“线程同步与进程同步方式”讲清概念、机制、取舍和边界。线程同步发生在同一进程共享地址空间内,常用 mutex、rwlock、condition variable、semaphore、barrier、atomic 和 futex;进程同步跨地址空间,常用命名信号量、文件锁、共享内存配进程共享 mutex、管道、消息队列和 socket。

Java 中实现多线程有哪些方式?

Java 中实现多线程有哪些方式?这道腾讯牛客题的关键是围绕“Java 线程与多线程实现方式”讲清概念、机制、取舍和边界。Java 实现多线程可以从 Thread、Runnable、Callable/Future、线程池和 CompletableFuture 等方式回答。更底层看,Java 线程通常映射到操作系统原生线程,由 JVM 负责创建、调度协作、栈管理和状态维护。

Go 中主协程如何等待其他协程执行完再继续?

Go 中主协程如何等待其他协程执行完再继续?这道腾讯牛客题的关键是围绕“Go WaitGroup 等待 goroutine”讲清概念、机制、取舍和边界。Go 中主 goroutine 等待其他 goroutine 最常用 sync.WaitGroup:启动前 Add 任务数,每个 goroutine defer Done,主 goroutine 调 Wait 阻塞直到计数归零。需要错误传播和取消时用 errgroup.WithContext 更合适。

同一个对象中两个 synchronized 方法分别被两个线程调用时会发生什么?

同一个对象中两个 synchronized 方法分别被两个线程调用时会发生什么?这道腾讯牛客题的关键是围绕“同一对象 synchronized 实例方法锁竞争”讲清概念、机制、取舍和边界。同一个对象里的两个 synchronized 实例方法使用的是同一把对象 monitor 锁。两个线程分别调用同一对象的两个 synchronized 方法时会互斥,先获得锁的线程执行,另一个线程进入 BLOCKED 等待。

多 Agent 协作时,Agent 之间如何传递状态、消息和工具结果,并避免并发读写冲突?

这道题考察多 Agent 系统的状态建模、通信协议、工具结果传递和并发一致性设计。好答案不能停留在 Agent 之间互相发消息,而要区分临时对话消息、可持久化任务状态、不可变工具产物和需要事务保护的共享资源。回答边界应覆盖消息队列或事件总线、共享状态存储、编排器协调、版本号或乐观锁、文件和数据库写入隔离、幂等重试、冲突检测,以及如何用日志和压测证明没有丢消息、重复执行和覆盖写。

Agent 设计中为什么要区分自然语言对话状态和结构化执行状态,分别存什么?

这道题考察 Agent 状态管理的边界意识。高质量回答要把自然语言对话状态和结构化执行状态分开:前者服务于模型理解上下文、用户意图和交互语义;后者服务于工作流执行、工具调用、恢复、审计和一致性控制。两者相互映射但不能混成一大段聊天记录,否则系统会难以恢复、难以测试,也容易产生幻觉状态。

如何理解小爱同学这类 AI 助手产品的用户价值、核心场景和交互入口?

这题来自“小爱产品”的理解,且上下文提到手机端入口交互和终端展示,所以答案要围绕 AI 助手的产品本质:它不是单一 App,而是跨设备、跨系统能力的交互层。用户价值可以拆成三类:降低操作成本、连接多设备场景、提供个性化和主动辅助。核心场景包括手机系统任务、智能家居控制、信息查询与内容服务、车载/穿戴/音箱等多终端协同、无障碍和老人儿童场景。交互入口要按主动/被动、语音/触控、前台/后台分层:唤醒词、长按电源键或快捷键、桌面组件、锁屏、负一屏/搜索、耳机和音箱、车机、智能家居面板。终端展示不应只靠语音播报,而要有卡片、确认页、多轮澄清、执行反馈和可撤销机制。

AI 应用开发中的原子状态机是什么?如何用有限状态、原子转移和异常状态约束执行流程,避免状态错乱、重复执行和异常无法收敛?

这道题考察 AI 应用或 Agent runtime 的流程约束能力。原子状态机不是让大模型自由决定下一步,而是把执行拆成有限状态、受控事件和原子转移:每次转移都校验前置状态、写入持久状态、绑定幂等键或执行记录,再推进任务或恢复异常。它解决的是状态错乱、重复执行、异常恢复、并发竞争和流程无法收敛问题。好的回答要能讲出状态集合、转移表、异常状态、幂等、锁/CAS、step budget、可观测性和验证指标。

视频 AIGC 的多镜头与智能分镜调度能力,如何划分模型侧与产品侧交付边界,并设计可控参数、质量指标和异常兜底?

这题考视频 AIGC 产品经理能否划清模型能力、产品编排和用户控制之间的边界。好答案要讲清模型侧负责生成质量和多镜头一致性,产品侧负责工作流、参数控制、质量门禁和异常兜底,并用结构化分镜协议把两边衔接起来。