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 + -
显示快捷键?