在Java多线程的应用中有狠多需要我们主要的事情,其中以Message类和Queue类最为重要。在使用的时候我们需要不断的学习相关的知识,这样才能熟练的掌握在Java多线程中相关的使用方法。
Message类
- package com.example.test;
- public class Message {
- public static int id;
- public String content;
- public String getContent() {
- return content;
- }
- public void setContent(String content) {
- this.content = content;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- Message.id = id;
- }
- }
Queue类
- package com.example.test;
- import java.util.ArrayList;
- import java.util.List;
- public class Queue {
- List<Message> queue = new ArrayList<Message>();
- /** 队列中message对象的***值,默认为5 */
- int maxMessageNum = 5;
- public synchronized void produce(Message message) {
- this.notifyAll();
- while (queue.size() == maxMessageNum) {
- System.out.println(Thread.currentThread().getName()
- + " 队列满!等待中。。。");
- try {
- this.wait();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- queue.add(message);
- System.out.println(Thread.currentThread().getName() + "正在生产"
- + message.getContent() + "。。。 ,当前个数:" + getCount());
- }
- public synchronized void consume() {
- this.notifyAll();
- while (queue.size() == 0) {
- System.out.println(Thread.currentThread().getName()
- + " 队列空!等待中。。。");
- try {
- System.out.println("begin!");
- wait();
- System.out.println("end!");
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- Message message = queue.get(0);
- queue.remove(0);
- System.out.println(Thread.currentThread().getName() + "正在消费"
- + message.getContent() + "。。。 ,当前个数: " + getCount());
- }
- public synchronized int getCount() {
- return queue.size();
以上就是对Java多线程的详细介绍。相关的问题我们还是会不断的向大家介绍。
【编辑推荐】