多线程交替打印1到100
时间: 2023-11-16 12:44:58 浏览: 141
Java实现多线程轮流打印1-100的数字操作
你可以使用多线程的方法来实现1到100的交替打印。下面是一个示例代码,可以帮助你理解:
```python
import threading
class PrintThread(threading.Thread):
def __init__(self, num, lock):
threading.Thread.__init__(self)
self.num = num
self.lock = lock
def run(self):
while self.num <= 100:
with self.lock:
print(self.num)
self.num += 2
# 创建一个锁对象
lock = threading.Lock()
# 创建两个子线程
thread1 = PrintThread(1, lock)
thread2 = PrintThread(2, lock)
# 启动两个子线程
thread1.start()
thread2.start()
# 主线程等待子线程执行完毕
thread1.join()
thread2.join()
```
这个示例中,我们定义了一个 `PrintThread` 类,这个类继承自 `threading.Thread` 类。在 `run` 方法中,每个线程通过获取锁对象来控制打印的顺序和范围。其中,`num` 表示当前要打印的数字,初始值分别为1和2。
然后,我们创建了一个锁对象 `lock`,用于线程间的同步。接着,创建了两个子线程 `thread1` 和 `thread2`,并分别启动它们。最后,主线程使用 `join` 方法等待两个子线程执行完毕。
这样,两个子线程会交替地打印出 1 到 100 的所有奇数和偶数。注意,这个示例只是一种实现方式,实际上还有其他多种方法可以实现相同的效果。
阅读全文