synchronizedemo3.java
来自「JAVA程序设计课程中各章节的程序实例。」· Java 代码 · 共 101 行
JAVA
101 行
/**
*A non-synchronize Producer/Concumer problem
*2004.12.24. xhcprince
*/
class Q
{
int n;
synchronized int get()
{
System.out.println("Get: " + n);
try
{
Thread.sleep(1000);
}
catch(InterruptedException e)
{
System.out.println(e.getMessage());
}
return n;
}
synchronized void put(int n)
{
this.n = n;
System.out.println("Put: " + n);
try
{
Thread.sleep(1000);
}
catch(InterruptedException e)
{
System.out.println(e.getMessage());
}
}
}
class Producer implements Runnable
{
Q obj;
Producer(Q obj)
{
this.obj = obj;
new Thread(this).start();
}
public void run()
{
int i = 0;
while(i <= 6)
{
obj.put(i);
++i;
}
}
}
class Consumer implements Runnable
{
Q obj;
Consumer(Q obj)
{
this.obj = obj;
new Thread(this).start();
}
public void run()
{
int t = 0;
while(t <= 6)
{
obj.get();
++t;
}
}
}
class SynchronizeDemo3
{
public static void main(String args[])
{
Q obj = new Q();
new Producer(obj);
new Consumer(obj);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?