面试题——多线程算法题

本文探讨了多种多线程环境下精确控制打印顺序的方法,包括使用信号量、锁及生产者消费者模型等策略,确保线程按预期顺序执行任务,如交替打印字符、数字等,同时介绍了LeetCode上按序打印的题目解析。

1. 代码实现控制三个线程打印出ABCABC…ABC(10次);两个线程,一个线程打印A,一个线程打印B,如何实现两个线程按顺序打印出ABABAB…?

2. 多线程打印奇偶数

3. 线程1先打印1,2,3,4,5,线程2打印6,7,8,9,10,线程3打印11,12,13,14,15。接着再由线程1打印16,17,18,19,20,以此类推,知道打印到75

4. a = [1,2,3,4]; b = [‘a’,‘b’,‘c’];交替打印1a2b3c4

5. 两个线程打印1.2.3.4打印到100怎么实现,这里刚开始说的是加锁用生产者消费者来做,后来说了semaphore,感觉后面的才是面试官想要的答案。

6. LeetCode 1114题,按序打印:三个不同的线程共用一个 Foo 实例。线程 A 调用 one() 方法,线程 B调用 two() 方法,线程 C 调用 three() 方法,设计修改程序,确保 two() 方法在 one() 方法之后被执行,three() 方法在 two() 方法之后被执行。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值