package cn.lnu.thread.info;
public class ProducerConsumerDemo2 {
/**JDK1.4
* �������ߣ�������������,�������������ѻ�����������������,��ʹ��ѭ���жϱ�ǣ����ʹ��notifyAll()ȫ������
* ���߳�ͨ��,ͬ��+�ȴ�/���ѻ���
*
* ����1,��
* �ظ������ظ����ѡ�
* ԭ��:�������ӵķ��������ֱ����ѵ����ɳ�û����ȥ�жϱ��flag�Ϳ�ʼ����(������������)�ˡ�
* �������ظ������������ѵIJ�����
* ������Ǿ��DZ����ѵ��̱߳����жϱ�ǣ�ʹ��whileѭ���жϱ��
*
* ����2:
* �����ˣ����е��̶߳����ڶ���״̬
* ԭ��:���߳��ڻ���ʱ����һ�λ����˱����̣߳��������߳�ѭ���жϱ��flag,�ּ����ȴ����Ӷ��������е��̶߳��ȴ���
*
* �����ϣ������������ѶԷ��߳̾Ϳ��Խ��
* ����ʹ��notifyAll()����
* �Dz���ȫ���������ǵģ����б����̣߳����жԷ��̣߳����DZ����Ѻ��жϱ�Ǽ����ȴ��������Է������߳̿���ִ����.
*
* �������Ѿ�ʵ���˶�����-������
* ������ЩС���⣬Ч���е�ͣ���ΪnotifyAll()��Ҳ�����˱��������˲���Ҫ���ж�
*/
public static void main(String[] args) {
//1��������Դ
Resource2 r2=new Resource2();
//2,����������������������
Producer2 p=new Producer2(r2);
Consumer2 c=new Consumer2(r2);
//3�������߳�
Thread t1=new Thread(p);
Thread t2=new Thread(p);
Thread t3=new Thread(c);
Thread t4=new Thread(c);
t1.start();
t2.start();
t3.start();
t4.start();
}
}