自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java多線程如何才能協(xié)調(diào)好生產(chǎn)和消費的關(guān)系

開發(fā) 后端
Java多線程在使用的時候需要我們協(xié)調(diào)相關(guān)的關(guān)系。下面的文章就向大家介紹了生產(chǎn)者和消費者之間的關(guān)系。希望大家有所收獲。

Java多線程在使用的時候需要我們主要生產(chǎn)和消費的關(guān)系。只有照顧好了整個關(guān)系才能更好的進行相關(guān)語句的應(yīng)用。下面我們就詳細的看看如何才能理解這個關(guān)系。希望大家有所收獲。

Java多線程:是程序中的一個單一的連續(xù)控制流程,一個線程可以擁有多個線程 。記得剛學(xué)習(xí)Java多線程的時候,對線程中的run()不知道是什么意思,現(xiàn)在大膽認為它就像Java的main()一樣,可以理解為一個線程啟動運行的入口函數(shù)。

創(chuàng)建一個線程的方式有兩種,一種是繼承Thread類,還有就是實現(xiàn)Runnable 接口,兩者都要重寫run。

時間偏分給我們想要執(zhí)行的線程時,可以將該線程的優(yōu)先級設(shè)置Thread.MAX_PRIORITY .下面是一個生產(chǎn)者和消費者的多線程的例子:其規(guī)則很簡單,只有生產(chǎn)出來東西才能有東西來消費。

Java多線程知識點:線程的創(chuàng)建、線程的同步、順便回顧一下大學(xué)的操作系統(tǒng)。

  1. class Test {  
  2. public static void main(String[] args) {  
  3. Queue q = new Queue();  
  4. Producer p = new Producer(q);  
  5. Consumer c = new Consumer(q);  
  6. p.start();  
  7. c.start();  
  8. }  
  9. }  
  10. class Producer extends Thread {  
  11. Queue q;  
  12. Producer(Queue q) {  
  13. this.q = q;  
  14. }  
  15. public void run() {  
  16. for (int i = 0; i < 10; i++) {  
  17. q.put(i);  
  18. System.out.println("Producer put " + i);  
  19. }  
  20. }  
  21. }  
  22. class Consumer extends Thread {  
  23. Queue q;  
  24. Consumer(Queue q) {  
  25. this.q = q;  
  26. }  
  27. public void run() {  
  28. while (true) {  
  29. System.out.println("Consumer get " + q.get());  
  30. }  
  31. }  
  32. }  
  33. class Queue {  
  34. int value;  
  35. boolean bFull = false;  
  36. public synchronized void put(int i) {  
  37. if (!bFull) {  
  38. value = i;  
  39. bFull = true;  
  40. notify();  
  41. }  
  42. try {  
  43. wait();  
  44. } catch (Exception e) {  
  45. e.printStackTrace();  
  46. }  
  47. }  
  48. public synchronized int get() {  
  49. if (!bFull) {  
  50. try {  
  51. wait();  
  52. } catch (Exception e) {  
  53. e.printStackTrace();  
  54. }  
  55. }  
  56. bFull = false;  
  57. notify();  
  58. return value;  
  59. }  

 

以上就是對Java多線程相關(guān)問題的介紹。希望大家有所幫助。

【編輯推薦】

  1. Java動態(tài)模塊化運行原理與實踐
  2. Java中間件將成Oracle制勝關(guān)鍵
  3. Java EE 6引入的JPA 2.0四大新特性詳解
  4. java認證:Java學(xué)習(xí)如何走出***步
  5. Java 7的***類函數(shù):學(xué)習(xí)閉包的使用
責(zé)任編輯:張浩 來源: TT網(wǎng)絡(luò)
相關(guān)推薦

2012-02-14 12:31:27

Java

2010-03-16 17:00:02

Java多線程支持

2017-05-16 12:30:21

Python多線程生產(chǎn)者消費者模式

2009-03-12 10:52:43

Java線程多線程

2010-07-26 09:45:09

Perl多進程

2021-09-11 15:26:23

Java多線程線程池

2010-03-15 17:56:23

Java多線程

2023-12-13 09:56:13

?多進程多線程協(xié)程

2020-09-14 08:45:58

多線程模型面試

2010-03-16 19:08:03

Java線程同步

2010-03-15 19:56:46

Java線程

2024-09-26 10:51:51

2019-07-31 10:08:19

人工多線程數(shù)據(jù)

2010-03-15 18:34:08

Java多線程

2013-06-13 13:19:38

多線程

2010-03-16 18:40:59

Java多線程編程

2022-05-27 08:16:37

Thread類Runnable接口

2023-05-12 14:14:00

Java線程中斷

2010-03-16 14:32:51

Java系統(tǒng)線程組

2022-11-02 11:09:56

制造業(yè)IT領(lǐng)導(dǎo)者
點贊
收藏

51CTO技術(shù)棧公眾號