java 线程 生产者和开发者模式 线程javathread 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /*java 多线程之生产者和消费者模式 效果就生产者生产出一台设备 然后消费者购买走这台设备*/public class RunnableCaseDemo03 { public static void main(String[] args) { Product pro=new Product(); Producer3 producer=new Producer3 (pro); Consumer3 consumer=new Consumer3 (pro); new Thread(producer).start(); new Thread(consumer).start(); }}class Product { private String name="Android"; private String company="Google公司"; boolean flag=false; public synchronized void setInfo (String name,String company){ if (!flag){ try{ super.wait(); } catch (InterruptedException e){ e.printStackTrace(); } }/*就是下面的这四行我打算用else {}框起来的 但是就是得不到我要的效果了 请大家帮忙看看*/ this.setName(name); this.setCompany(company); flag=false; super.notify(); } public synchronized void getInfo (){ if (flag){ try{ super.wait(); } catch (InterruptedException e){ e.printStackTrace (); } } System.out.println(this.getName()+"-->"+this.getCompany()); flag=true; super.notify();} public void setName (String name){ this.name=name; } public void setCompany(String company){ this.company=company; } public String getName(){ return this.name; } public String getCompany(){ return this.company; }}class Producer3 implements Runnable{ private Product pro=null; public Producer3 (Product pro){ this.pro=pro; } boolean flag=false; public void run (){ for (int i=0;i<10;i++){ if (flag){ this.pro.setInfo("Android", "Google公司"); flag=false; } else{ this.pro.setInfo("Ios", "Appel公司"); flag=true; } } }} class Consumer3 implements Runnable{ private Product pro=null; public Consumer3 (Product pro){ this.pro=pro; } public void run (){ for (int i=0;i<10;i++){ this.pro.getInfo(); } }} 一道不明白的Java题 关于重载的,我以为我懂了,结果又蒙了,请大家指教一下! 有关Socket传输16进制的数据问题!急!在线等. java中error和exception 有什么区别 如何实现这个问题? 如何判断与数据库的连接是否正常 新手问题:关于大小比较~~~ 请教:JAMES中如何启动IMAP服务? 调查一下,用vj++写JAVA的有多少!! .net发布的webService程序,java做客户端遇见问题。 java new对象 inputstream 生成多个文件?
public class RunnableCaseDemo03 { public static void main(String[] args) {
Product pro=new Product();
Producer3 producer=new Producer3 (pro);
Consumer3 consumer=new Consumer3 (pro);
new Thread(producer).start();
new Thread(consumer).start();
}
}
class Product {
private String name="Android";
private String company="Google公司";
boolean flag=false;
public synchronized void setInfo (String name,String company){
if (!flag){
try{
super.wait();
}
catch (InterruptedException e){
e.printStackTrace();
}
}
/*就是下面的这四行我打算用else {}框起来的 但是就是得不到我要的效果了 请大家帮忙看看*/
this.setName(name);
this.setCompany(company);
flag=false;
super.notify();
}
public synchronized void getInfo (){
if (flag){
try{
super.wait();
}
catch (InterruptedException e){
e.printStackTrace ();
}
}
System.out.println(this.getName()+"-->"+this.getCompany());
flag=true;
super.notify();
}
public void setName (String name){
this.name=name;
}
public void setCompany(String company){
this.company=company;
}
public String getName(){
return this.name;
}
public String getCompany(){
return this.company;
}
}
class Producer3 implements Runnable{
private Product pro=null;
public Producer3 (Product pro){
this.pro=pro;
}
boolean flag=false;
public void run (){
for (int i=0;i<10;i++){
if (flag){
this.pro.setInfo("Android", "Google公司");
flag=false;
}
else{
this.pro.setInfo("Ios", "Appel公司");
flag=true;
}
}
}
}
class Consumer3 implements Runnable{
private Product pro=null;
public Consumer3 (Product pro){
this.pro=pro;
}
public void run (){
for (int i=0;i<10;i++){
this.pro.getInfo();
}
}
}