package cn.lnu.thread.info; //������-�����߶���Ҫ��������Դ public class Resource { private String name; private int count=1; private boolean flag=true;//��ʾ����������� //�ṩһ���������߸���Դ��ֵ�ķ��� public synchronized void setRes(String name){ if(flag){//�жϱ��Ϊtrue,ִ��wait�ȴ���Ϊfalse������ try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } this.name=name+"---"+count; count++; System.out.println(Thread.currentThread().getName()+"------������------"+this.name); //������ϣ�����Ǹ�Ϊtrue flag=true; //���������� notify(); } //�ṩһ���������߻�ȡ��Ʒ�ķ��� public synchronized void getRes(){ if(!flag){//���û����Ʒ�������ѣ���ȴ� try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println(Thread.currentThread().getName()+"------------������---------"+this.name); //������ϣ�����Ǹ�Ϊfalse flag=false; //���������� notify(); } }