生产与消费(多线程练习题)
多线程 生产 消费 练习题
2023-09-14 09:05:15 时间
前言:该题目是网上寻找的一个比较好的,多线程的java练习题,博主写下自己的代码,方便大家一起学习理解,java多线程。
提交代码:
import java.util.Random;
import java.util.Vector;
public class Main {
static Random random = new Random();
static Vector<String> queue = new Vector<>(); // 创建队列
static class MyThread extends Thread{ // 通过继承的方法来实现多线程
public MyThread() {
}
public MyThread(String name) {
super(name);
}
@Override
public void run(){
while (true){
try {
sleep(1000); // 一秒的延迟
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if (getName().equals("a")){ // 当是a进程的时候 产生随机字符串
queue.add(random.nextDouble() + "字符串");
}
else{
if (queue.isEmpty()){ // 没有字符串的时候
System.out.println("no msg"); // 打印报错
}
else
{
String poll = queue.lastElement(); // 返回队列的最后一个元素
queue.remove(queue.size() - 1); // 然后删除最后一个元素
System.out.println(poll); // 打印队列
}
}
}
}
}
public static void main(String[] args) {
// 创建的两个线程
MyThread a = new MyThread();
a.setName("a"); // 设置线程名字
MyThread b = new MyThread();
b.setName("b");
a.start();
b.start();
}
}
运行结果: