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

📄 j_waitnotify.java

📁 一些常用的java程序,包括swing.net.io,matrix等
💻 JAVA
字号:
package creaatThread;


class J_Expriment
{
	private int m_temperature, m_pressure;
	private boolean m_ready = false;
	
	public synchronized void mb_update(int t, int p)
	{
		System.out.println("enter update method");
		if(m_ready)
		{
			System.out.println("    waiting for analyze data");
			try
			{
				wait();
			}
			catch(Exception e)
			{
				System.err.println("err found mb_update( "+t+" , "+p+" )");
				e.printStackTrace();
			}
			
			System.out.println("     go on updating data");
		}//if
		
		m_temperature = t;
		m_pressure = p;
		System.out.println("update finish temperature = "+ t + " , pressure = "+p);
		m_ready = true;
		notify();
	}//mb_update
	
	public synchronized void mb_analyze()
	{
		System.out.println("enter analyze method");
		if(!m_ready)
		{
			System.out.println("      waint for update data");
			try
			{
				wait();
			}
			catch(Exception e)
			{
				System.err.println("err found mb_analyze( )");
				e.printStackTrace();
			}
			
			System.out.println("       go on analyze data");
		}//if
		
		int t = m_temperature;
		int p = m_pressure;
		System.out.println("analyze finish temperature = "+t+" , pressure = "+p);
		m_ready = false;
		notify();
	}//mb_analyze()
	
}//class J_Expriment

class J_Assistant extends Thread
{
	J_Expriment m_data;
	public J_Assistant(J_Expriment d)
	{
		m_data = d;
	}
	
	public void run()
	{
		System.out.println("Assistant begin tho process data");
		int i, j, k;
		for(k = 0; k < 3; k++)
		{
			i = (int)(Math.random() * 1000);
			j = (int)(Math.random() * 1000);
			m_data.mb_update(i, j);
		}//for
		
		System.out.println("Assitant finish process data");
	}//run
}//J_Assistant

class J_Analyst extends Thread
{
	J_Expriment m_data;
	public J_Analyst(J_Expriment d)
	{
		m_data = d;
	}
	
	public void run()
	{
		System.out.println("Analyst begin to work");
		for(int k = 0; k < 3; k++)
		{
			m_data.mb_analyze();
		}//for
		System.out.println("Analyst finish his work");
	}
}//J_Analyst
public class J_WaitNotify {

	/**
	 * @param args
	 */

		public static void main(String [] args)
		{
			J_Expriment data = new J_Expriment();
			J_Assistant threadA = new J_Assistant(data);
			J_Analyst threadB = new J_Analyst(data);
			
			threadA.start();
			threadB.start();
			
			System.out.println("main end");
		}//main


}//J_WaitNotify

⌨️ 快捷键说明

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