编写一个有两个线程的程序,第一个线程用来计算1~100之间的奇数及个数,第二个线程用来计算1-100之间的偶数及个数。
时间: 2024-03-01 21:56:31 浏览: 71
好的,以下是一个简单的Python代码实现:
```python
import threading
class OddEvenCounter:
def __init__(self):
self.odd_count = 0
self.even_count = 0
def count_odds(self):
for i in range(1, 101, 2):
self.odd_count += 1
print("奇数个数:", self.odd_count)
def count_evens(self):
for i in range(2, 101, 2):
self.even_count += 1
print("偶数个数:", self.even_count)
counter = OddEvenCounter()
t1 = threading.Thread(target=counter.count_odds)
t2 = threading.Thread(target=counter.count_evens)
t1.start()
t2.start()
t1.join()
t2.join()
print("程序结束")
```
在上面的代码中,我们创建了一个名为 `OddEvenCounter` 的类,其中包含了两个方法 `count_odds` 和 `count_evens`,用于分别计算奇数和偶数的个数,并将结果存储在实例变量 `odd_count` 和 `even_count` 中。
然后,我们创建了一个 `OddEvenCounter` 的实例 `counter`,并创建了两个线程 `t1` 和 `t2`,分别调用 `counter` 的 `count_odds` 和 `count_evens` 方法。最后,我们启动了这两个线程,等待它们完成后输出结果。
注意,由于我们使用了共享变量 `odd_count` 和 `even_count`,因此需要注意线程安全问题。在这个简单的例子中,我们没有使用任何同步机制,因此可能会出现竞争条件。在实际应用中,应该使用锁或其他同步机制来保证线程安全。
阅读全文