创建两个线程,一个打印1-1000的奇数,一个打印1-1000的偶数
时间: 2024-02-25 08:55:36 浏览: 118
好的,我来写一个示例代码:
```python
import threading
# 打印奇数的线程函数
def print_odd():
for i in range(1, 1001, 2):
print(i)
# 打印偶数的线程函数
def print_even():
for i in range(2, 1001, 2):
print(i)
# 创建两个线程并启动
t1 = threading.Thread(target=print_odd)
t2 = threading.Thread(target=print_even)
t1.start()
t2.start()
```
这个代码创建了两个线程,一个打印奇数,一个打印偶数,它们同时运行并打印出结果。注意,这里用到了Python内置的`threading`模块来实现多线程。
相关问题
java语言实现:创建两个线程,线程A打印1-10之间的偶数。线程B打印1-10之间的奇数。两个操作交替执行
代码如下:
```
public class PrintNumber {
private static Object lock = new Object(); // 定义一个锁对象
private static int count = 1; // 初始值为1
public static void main(String[] args) {
Thread thread1 = new Thread(() -> {
while (count <= 10) {
synchronized (lock) { // 加锁
if (count % 2 == 0) {
System.out.println(Thread.currentThread().getName() + ": " + count);
count++;
}
}
}
}, "Thread-A");
Thread thread2 = new Thread(() -> {
while (count <= 10) {
synchronized (lock) { // 加锁
if (count % 2 != 0) {
System.out.println(Thread.currentThread().getName() + ": " + count);
count++;
}
}
}
}, "Thread-B");
thread1.start(); // 启动线程1
thread2.start(); // 启动线程2
}
}
```
在该代码中,我们首先定义了一个锁对象lock和一个计数器count,然后创建了两个线程thread1和thread2。线程thread1负责打印偶数,线程thread2负责打印奇数。
在每个线程中,我们使用while循环保证打印的数字不超过10。然后使用synchronized关键字对锁对象进行加锁,确保两个线程交替执行。在加锁的代码块中,我们对计数器进行判断,打印偶数或奇数,并将计数器加1。
最后,我们启动两个线程。由于两个线程使用了同一个锁对象,因此它们会交替执行,打印出1-10之间的奇数和偶数。
用Java 编写一个应用程序创建两个线程,一 个法程打印输出1-1000之间所有的奇数 另外一个线程打印输 1-1000之同所有的偶数,要求两个线程随机休眠,打印输出下一个数,请使用Tread类编程实现
好的,下面是Java代码实现:
```java
public class OddEvenPrinter {
public static void main(String[] args) {
Printer oddPrinter = new Printer("奇数线程", 1);
Printer evenPrinter = new Printer("偶数线程", 0);
oddPrinter.start();
evenPrinter.start();
}
}
class Printer extends Thread {
private int start;
private String name;
public Printer(String name, int start) {
this.start = start;
this.name = name;
}
@Override
public void run() {
while (start <= 1000) {
System.out.println(name + ": " + start);
try {
Thread.sleep((long) (Math.random() * 100));
} catch (InterruptedException e) {
e.printStackTrace();
}
start += 2;
}
}
}
```
以上代码创建了两个线程,一个线程打印奇数,一个线程打印偶数。线程随机休眠并打印下一个数,直到打印输出完所有需要的数字。
阅读全文