關(guān)于多線程的一些知識(shí)點(diǎn)(四)——生產(chǎn)者消費(fèi)者

我看的教程例子比較復(fù)雜,自己提取了一下,可能寫的不太好

public class ProCsum{
    private static int ticket = 0;//這是臨界資源
    private static boolean flag = false;//用于判斷
    static ProCsum proCsum = new ProCsum();
    public static void main(String[] args) {
        Runnable proR = new Runnable() {
            @Override
            public void run() {
                // TODO Auto-generated method stub
                while(ticket<6){
                    proCsum.produce();
                }       
            }
        };
        
        Runnable cumR = new Runnable() {
            @Override
            public void run() {
                // TODO Auto-generated method stub
                
                while(ticket<6){
                    proCsum.consume();
                }
            }
        };
        
        Thread proTh = new Thread(proR);
        Thread cumPh = new Thread(cumR);
        
        cumPh.start();
        proTh.start();
        
    }
    
    public synchronized void produce(){
        if (flag) {
            //LiProductor.class.wait();
            try {
                this.wait();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        ++ticket;
        System.out.println("生產(chǎn)門票"+ticket+"號(hào)");
        flag = true;
        //LiProductor.class.notifyAll();
        this.notifyAll();
    }
    
    public synchronized void consume(){
        if (!flag) {
            try {
                //LiProductor.class.wait();
                this.wait();
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        System.out.println("消費(fèi)門票"+ticket+"號(hào)");
        flag = false;
        //LiProductor.class.notifyAll();
        this.notifyAll();
    }
}

運(yùn)行結(jié)果:


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容