package com.softeem.lesson22.sync3;
public
class
mobile
public
intgetnum()
public
void
setnum
(int num)
}
package com.softeem.lesson22.sync3;
public
class
storage
catch
(interruptedexception e)
}//通知消費者消費
notifyall()
; list[index++
]= m;
}public
synchronized mobile pop()
catch
(interruptedexception e)
}//通知生產者生產
notifyall()
; index--
; mobile m = list[index]
;return m;
}public
synchronized
intsize()
}
package com.softeem.lesson22.sync3;
public
class
producer
implements
runnable
@override
public
void
run(
)catch
(interruptedexception e)
mobile m =
newmobile
(i);
s.push
(m);
system.out.
println
("生產者"
+name+
"生產了一部手機:"
+i+",庫存:"
+s.size()
);i++;}
}}
package com.softeem.lesson22.sync3;
public
class
consumer
implements
runnable
@override
public
void
run(
)catch
(interruptedexception e)
mobile m = s.
pop();
system.out.
println
("消費者"
+name+
"消費了一部手機--->"
+m.getnum()
+",庫存"
+s.size()
);}}
}
package com.softeem.lesson22.sync3;
public
class
consumer
implements
runnable
@override
public
void
run(
)catch
(interruptedexception e)
mobile m = s.
pop();
system.out.
println
("消費者"
+name+
"消費了一部手機--->"
+m.getnum()
+",庫存"
生產者和消費者問題
有乙個生產者在生產產品,這些產品將提供給若干個消費者去消費,為了使生產者和消費者能併發執行,在兩者之間設定乙個具有多個緩衝區的緩衝池,生產者將它生產的產品放入乙個緩衝區中,消費者可以從緩衝區中取走產品進行消費,顯然生產者和消費者之間必須保持同步,是即不允許消費者到乙個空的緩衝區中取產品,也不允許生產...
生產者和消費者問題
package 生產者消費者 public class producerconsumertest package 生產者消費者 生產者執行緒,負責生產公共資源 author dream public class producerthread implements runnable override ...
生產者和消費者問題
同學面試有遇到這個問題,說面試官很刁,答的不好。於是,我也翻了翻書,頓感有做筆記的必要。概述 生產者和消費者問題是關於同步的乙個經典問題,即由乙個或多個生產者 執行緒或程序 建立資料,然後由乙個或多個消費者 執行緒或程序 處理。這裡自然涉及到ipc。一 單生產者 單消費者 最簡單的同步模型,以she...