Java多线程生产者消费者
Java的多线程学习中,因为有练习的要求,扔个生产者消费者的代码放上来:
先解释一下,里面有三个类,分别是cook(厨师),waiter(服务生)和food,厨师生产食物,而服务生则端走食物。那么先写一个用锁去同步的多线程,代码其实很简单,就是厨师对食物进行更改,直接修改食物的类型(手撕鸡或者卤猪脚),就算是食物生产完成了。
public class TestThread {
public static void main(String[] args){
food f = new food();
cook c = new cook(f);
waiter w = new waiter(f);
Thread t1 = new Thread(c);
Thread t2 = new Thread(w);
t1.start();
t2.start();
}
}
class cook implements Runnable{
food f;
static final int count = 5;
cook(food f){
this.f = f;
}
@Override
public void run() {
for (int i = 0; i < count; i++) {
f.l.lock();
if(i % 2 == 0) {
f.setName("手撕鸡");
f.setTaste("麻辣味");
f