⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test11_1.java

📁 以上源码都能完成相应功能!是基础编程者学习着的好资料!
💻 JAVA
字号:

//检索和存储向量中的对象,理解wait(),notify(),及synchronized的概念

import java.util.*;
import java.io.*;

class Message implements Serializable
{
	String from;
	String message;
	public Message(String from,String message)
	{
	this.from=from;
	this.message=message;
		
		}
	}
	
class MyVector extends Vector
{
	BufferedReader standardInput;
	
	static int counter;
	int instanceCounter;
	public MyVector()
	{
		super(1,1);
		standardInput=new BufferedReader(new InputStreamReader(System.in));
		}
	synchronized void put()
	{
		try{
		System.out.println("Enter your name and message");
		String from=standardInput.readLine();
		String message=standardInput.readLine();
		Message msg=new Message(from,message);
		addElement((Message)msg);
		counter++;
		notify();
		}
		catch(IOException e)
		{}
		}
	synchronized void get()
	{
		while(instanceCounter>=counter)
		{
			try
			{
				wait();
				}
			catch(InterruptedException e)
			{
				System.out.println("Thread interrupted "+e);	
				}
			}
					//	for(int i=0;i<counter;i++)
					// 	{
		Message msg=(Message)elementAt(counter-1);//elementAt(i);
		System.out.println(msg.from+":"+msg.message);
					//	}
		instanceCounter++;
		if(instanceCounter==4)
		{
			System.out.println("=================");
			for(int i=0;i<4;i++)	
			  { Message msg1=(Message)elementAt(i);//elementAt(i);
				System.out.println(msg1.from+":"+msg1.message);
				}
			}
		notify();
		}
	}
	
	class Mythread1 extends Thread
	{
		MyVector myVector;
		public Mythread1(MyVector myVector)
		{
			this.myVector=myVector;
			new Thread(this).start();	
			}
		public void run()
		{
			while(true)
			{
				myVector.put();
				}
			}
		}
	class Mythread2 extends Thread
	{
		MyVector myVector;
		public Mythread2(MyVector myVector)
		{
			this.myVector=myVector;
			new Thread(this).start();	
		}
		public void run()
		{
			while(true)
			{
				myVector.get();
				}
			}
	}
	
public class Test11_1
{
	public static void main(String args[])
	{
		MyVector  myVector=new MyVector();
		new Mythread1(myVector);
		new Mythread2(myVector);
		}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -