testlinkedlist.java

来自「本书是一本为Java学习者在基础内容学习结束后进行课程设计时提供参考的指导书」· Java 代码 · 共 72 行

JAVA
72
字号
package apibook.c2.s1;import java.util.*;public class TestLinkedList {  public TestLinkedList() {  }  public static void main(String[] args) {  	//创建一个链表对象    LinkedList l1 = new LinkedList();    //启动生产者线程    new producer(l1).start();    //启动消费者线程    new consumer(l1).start();    new consumer(l1).start();  }}class consumer extends Thread{//消费者线程  LinkedList list;  consumer(LinkedList l){    list= l;  }  public void run(){    try {      while (true) {      	//对该链表进行同步        synchronized(list){        	//链表为空,线程等待          while (list.isEmpty()) {             list.wait();          }          //消费链表中的第一个数          System.out.println(this+":"+list.removeFirst());        }      }    }    catch (Exception ex) {      ex.printStackTrace();    }  }}class producer extends Thread{//生产者线程  Random r = new Random();  LinkedList list;  producer(LinkedList l){    list=l;  }  public void run(){    int count=0;    try {      while (true) {      	//线程睡眠随机长度的时间        Thread.sleep(r.nextInt(2002));        //对链表进行同步        synchronized(list){        	//将产生的数加入链表中          list.addLast(new Integer(count++));          //唤醒消费者线程          list.notify();        }      }    }    catch (Exception ex) {      ex.printStackTrace();    }  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?