多线程交替打印 "foobar" —— 经典线程同步问题解析与实现
在多线程编程中,如何控制多个线程按特定顺序执行是一道非常典型且重要的题目。本文以“两个线程交替打印 'foo' 和 'bar',输出 'foobar' n 次”为例,详细分析问题,讲解多种解决方案,并对比它们的优缺点。
题目描述
给定一个类 FooBar,包含两个方法:
foo():打印"foo"n 次bar():打印"bar"n 次
现在有两个不同的线程共用一个 FooBar 实例:
- 线程 A 调用
foo()方法 - 线程 B 调用
bar()方法
要求修改程序,使得两个线程交替执行,最终输出 "foobar" 连续出现 n 次。
解题分析
两个线程分别执行两个方法,且这两个方法各自要循环 n 次打印字符串。但单纯调用各自的打印方法,无法保证 "foo" 和 "bar" 按交替顺序输出。
核心问题是线程同步与协调:
- 确保线程 A 先打印
"foo",线程 B 等待。

最低0.47元/天 解锁文章
440

被折叠的 条评论
为什么被折叠?



