JAVA中的多线程
Posted 零EVA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中的多线程相关的知识,希望对你有一定的参考价值。
生产者消费者
1 class Resource 2 { 3 private String name; 4 private int count = 1; 5 private boolean flag = false; 6 7 public synchronized void set(String name) 8 { 9 while(flag) 10 try{this.wait();}catch(Exception e){} 11 this.name = name+"--"+count++; 12 System.out.println(Thread.currentThread().getName()+"...生产者..."+this.name); 13 flag = true; 14 this.notifyAll(); 15 } 16 17 public synchronized void out() 18 { 19 while(!flag) 20 try{this.wait();}catch(Exception e){} 21 System.out.println(Thread.currentThread().getName()+"...消费者..."+this.name); 22 flag = false; 23 this.notifyAll(); 24 } 25 } 26 27 class Producer implements Runnable 28 { 29 private Resource res; 30 31 Producer(Resource res) 32 { 33 this.res = res; 34 } 35 36 public void run() 37 { 38 while(true) 39 { 40 res.set("+TT+"); 41 } 42 } 43 } 44 45 class Customer implements Runnable 46 { 47 private Resource res; 48 49 Customer(Resource res) 50 { 51 this.res = res; 52 } 53 54 public void run() 55 { 56 while(true) 57 { 58 res.out(); 59 } 60 } 61 } 62 class ProducerCustomerDemo 63 { 64 public static void main(String[] args) 65 { 66 Resource r = new Resource(); 67 68 Producer pro = new Producer(r); 69 Customer con = new Customer(r); 70 71 Thread t1 = new Thread(pro); 72 Thread t2 = new Thread(con); 73 74 t1.start(); 75 t2.start(); 76 } 77 }
以上是关于JAVA中的多线程的主要内容,如果未能解决你的问题,请参考以下文章