生產者和消費者問題

2021-09-26 07:41:37 字數 2050 閱讀 4621

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...