Java多线程中Message类和Queue类的使用方法

开发 后端
Java多线程有很多的分类,首先我们来看看Message类和Queue类之间的具体代码是什么样的。只有这样我们才能更好的进行相关技术的学习。

Java多线程的应用中有狠多需要我们主要的事情,其中以Message类和Queue类最为重要。在使用的时候我们需要不断的学习相关的知识,这样才能熟练的掌握在Java多线程中相关的使用方法。

Message类

 

  1. package com.example.test;  
  2. public class Message {  
  3. public static int id;  
  4. public String content;  
  5. public String getContent() {  
  6. return content;  
  7. }  
  8. public void setContent(String content) {  
  9. this.content = content;  
  10. }  
  11. public int getId() {  
  12. return id;  
  13. }  
  14. public void setId(int id) {  
  15. Message.id = id;  
  16. }  

 

Queue类

 

  1. package com.example.test;  
  2. import java.util.ArrayList;  
  3. import java.util.List;  
  4. public class Queue {  
  5. List<Message> queue = new ArrayList<Message>();  
  6. /** 队列中message对象的***值,默认为5 */  
  7. int maxMessageNum = 5;  
  8. public synchronized void produce(Message message) {  
  9. this.notifyAll();  
  10. while (queue.size() == maxMessageNum) {  
  11. System.out.println(Thread.currentThread().getName()  
  12. + " 队列满!等待中。。。");  
  13. try {  
  14. this.wait();  
  15. } catch (InterruptedException e) {  
  16. e.printStackTrace();  
  17. }  
  18. }  
  19. queue.add(message);  
  20. System.out.println(Thread.currentThread().getName() + "正在生产"  
  21. + message.getContent() + "。。。 ,当前个数:" + getCount());  
  22. }  
  23. public synchronized void consume() {  
  24. this.notifyAll();  
  25. while (queue.size() == 0) {  
  26. System.out.println(Thread.currentThread().getName()  
  27. + " 队列空!等待中。。。");  
  28. try {  
  29. System.out.println("begin!");  
  30. wait();  
  31. System.out.println("end!");  
  32. } catch (InterruptedException e) {  
  33. e.printStackTrace();  
  34. }  
  35. }  
  36. Message message = queue.get(0);  
  37. queue.remove(0);  
  38. System.out.println(Thread.currentThread().getName() + "正在消费"  
  39. + message.getContent() + "。。。 ,当前个数: " + getCount());  
  40. }  
  41. public synchronized int getCount() {  
  42. return queue.size(); 

以上就是对Java多线程的详细介绍。相关的问题我们还是会不断的向大家介绍。

【编辑推荐】

  1. Android Java包各种功能概览
  2. Scala:Java+函数式=后函数式?
  3. C++和C#、Java的区别集中总结
  4. Android启动Java程序应用方法详解
  5. 2010年将是Java模块化的一年
责任编辑:张浩 来源: TT网络
相关推荐

2010-03-15 18:18:33

Java多线程

2011-08-08 14:07:49

iPhone开发 字体

2009-12-02 18:51:12

PHP分页类

2022-05-27 08:16:37

Thread类Runnable接口

2009-06-29 18:26:11

Java多线程Synchronize同步类

2010-01-06 10:18:02

JSON类

2011-06-24 15:06:40

QT

2009-12-02 14:50:25

PHP接口类inter

2022-02-21 18:43:42

Spring封装多线程

2010-07-09 14:39:42

UML类图

2009-06-29 17:54:10

Java多线程Thread类创建线程

2021-09-11 15:26:23

Java多线程线程池

2011-07-21 15:20:31

iPhone SDK 多线程

2009-11-24 15:50:09

PHP上传类uploa

2009-06-29 18:08:51

Java多线程join方法

2011-06-02 14:51:07

JAVA修饰符

2009-06-22 08:39:27

Java常见错误Java类

2018-06-20 10:34:56

堆栈iOSswift

2009-04-27 13:15:04

多线程方法run()

2024-05-21 11:09:17

点赞
收藏

51CTO技术栈公众号