您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java多線程怎么才能協調好生產和消費的關系”,在日常操作中,相信很多人在Java多線程怎么才能協調好生產和消費的關系問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java多線程怎么才能協調好生產和消費的關系”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
Java多線程:是程序中的一個單一的連續控制流程,一個線程可以擁有多個線程 。記得剛學習Java多線程的時候,對線程中的run()不知道是什么意思,現在大膽認為它就像Java的main()一樣,可以理解為一個線程啟動運行的入口函數。
創建一個線程的方式有兩種,一種是繼承Thread類,還有就是實現Runnable 接口,兩者都要重寫run。
時間偏分給我們想要執行的線程時,可以將該線程的優先級設置Thread.MAX_PRIORITY .下面是一個生產者和消費者的多線程的例子:其規則很簡單,只有生產出來東西才能有東西來消費。
Java多線程知識點:線程的創建、線程的同步、順便回顧一下大學的操作系統。
class Test { public static void main(String[] args) { Queue q = new Queue(); Producer p = new Producer(q); Consumer c = new Consumer(q); p.start(); c.start(); } } class Producer extends Thread { Queue q; Producer(Queue q) { this.q = q; } public void run() { for (int i = 0; i < 10; i++) { q.put(i); System.out.println("Producer put " + i); } } } class Consumer extends Thread { Queue q; Consumer(Queue q) { this.q = q; } public void run() { while (true) { System.out.println("Consumer get " + q.get()); } } } class Queue { int value; boolean bFull = false; public synchronized void put(int i) { if (!bFull) { value = i; bFull = true; notify(); } try { wait(); } catch (Exception e) { e.printStackTrace(); } } public synchronized int get() { if (!bFull) { try { wait(); } catch (Exception e) { e.printStackTrace(); } } bFull = false; notify(); return value; } }
到此,關于“Java多線程怎么才能協調好生產和消費的關系”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。