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

📄 myvector.java

📁 线程通信的小例子,简明,简单易懂,用记事本也可以打开看,java环境
💻 JAVA
字号:
import java.util.*;
import java.io.*;

class Message
{
	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()
	{
		System.out.println("Please enter your name and message");
		String from=standardInput.readLine();
		String message=standardInput.readLine();
		Message msg=new Message(from,message);
		addElement((Message)msg);
		counter++;
		notify();
	}
	synchronized void get()
	{
		while(instanceCounter>=counter)
		{
			try
			{
				wait();
			}
			catch(InterruptedException e)
			{
				System.out.println("Thread intrrupted"+e);
			}
		}
		Message msg=(Message)elementAt(counter-1);
		System.out.println(msg.from+":"+msg.message);
		instanceCounter++;
		notify();
	}
}
class MyThread1 implements Runnable
{
	MyVector myVector;
	public MyThread1(MyVector myVector)
	{
		this.myVector=myVector;
		new Thread(this).start();
	}
	public void run()
	{
		while(true)
		{
			myVector.put();
		}
	}
	public static void main(String args[])
	{
		MyVector myVector=new MyVector();
		new MyThread1(myVector);
	}

}
class MyThread2 implements Runnable
{
	MyVector myVector;
	public MyThread2(MyVector myVector)
	{
		this.myVector=myVector;
		new Thread(this).start();
	}
	public void run()
	{
		while(true)
		{
			myVector.get();
		}
	}
	public static void main(String args[])
	{
		MyVector myVector=new MyVector();
		new MyThread2(myVector);
	}
}

⌨️ 快捷键说明

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