用java使用单线程和多线程分别实现银行排号系统
时间: 2024-02-24 22:59:19 浏览: 133
轻松构建和运行多线程的单元测试
好的,下面是Java单线程和多线程分别实现银行排号系统的示例代码:
1. 单线程实现:
```java
import java.util.Scanner;
public class BankQueueSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 银行顾客数量
for (int i = 1; i <= n; i++) { // 循环为每个顾客排队取号
System.out.println("顾客" + i + "取到号码为:" + i);
}
}
}
```
2. 多线程实现:
```java
import java.util.Scanner;
public class BankQueueSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); // 银行顾客数量
for (int i = 1; i <= n; i++) { // 循环为每个顾客排队取号
new Thread(new Customer(i)).start(); // 每个顾客开启一个线程
}
}
}
class Customer implements Runnable {
private int id; // 顾客编号
public Customer(int id) {
this.id = id;
}
public void run() {
System.out.println("顾客" + id + "取到号码为:" + id);
}
}
```
以上两个示例代码分别使用了单线程和多线程的方式实现银行排号系统。在单线程的实现中,通过for循环为每个顾客依次排队取号,是一个串行的过程。而在多线程的实现中,每个顾客开启一个线程,可以并行处理,提高了效率。
阅读全文