线程的简单生产消费模式
生活随笔
收集整理的這篇文章主要介紹了
线程的简单生产消费模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Student類
package july.star.thread14;/*** Student* @author MoXingJian* @email 939697374@qq.com* @date 2016年11月30日 下午3:39:45* @version 1.0*/
public class Student {private String name;private int age;private boolean flag;public synchronized void set(String name,int age){//如果有數據,就等待if(flag){try {wait();} catch (InterruptedException e) {e.printStackTrace();}}this.name = name;this.age = age;//標識this.flag = true;notify(); //喚醒}public synchronized String get(){//如果沒有數據,等待if(!flag){try {wait();} catch (InterruptedException e) {e.printStackTrace();}}System.out.println(this.name+":"+this.age);this.flag = false;this.notify();return name;}
}SetThread設置線程,賦值
package july.star.thread14;
/*** SetThread** @author MoXingJian* @email 939697374@qq.com* @date 2016年11月30日 下午3:40:31* @version 1.0*/
public class SetThread implements Runnable {private Student s;private int count;public SetThread(Student s) {this.s = s;}@Overridepublic void run() {while (true) {if (count % 2 == 0) {s.set("一非", 21);count++;} else {s.set("辣雞", 30);count++;}}}
}GetThread獲取值
package july.star.thread14;
/*** GetThread** @author MoXingJian* @email 939697374@qq.com* @date 2016年11月30日 下午3:42:05* @version 1.0*/
public class GetThread implements Runnable {private Student s;public GetThread(Student s) {this.s = s;}@Overridepublic void run() {while (true) {s.get();}}
}測試
package july.star.thread14;/*** 簡單生產消費模式* @author MoXingJian* @email 939697374@qq.com* @date 2016年11月30日 下午3:43:19* @version 1.0*/
public class TestThread {public static void main(String[] args) {Student s = new Student();SetThread st = new SetThread(s);GetThread gt = new GetThread(s);Thread t1 = new Thread(st);Thread t2 = new Thread(gt);t1.start();t2.start();}
}
總結
以上是生活随笔為你收集整理的线程的简单生产消费模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单生产消费模式的代码流程(Java代码
- 下一篇: 适配器设计模式,简单的Java代码模拟