public class GetOUt {
public PrintOne p1;
public PrintTwo p2;
public int cout;
private Object xlock=new Object();
public GetOUt() {
p1=new PrintOne();
p2=new PrintTwo();
cout=0;
}
public void PrinteFirst() throws Exception {
while(true)
{
synchronized (xlock){
cout++;
if (cout>0){
xlock.notifyAll();
}
System.out.println("1:"+cout);
}
Thread.sleep(500);
}
}
public void PrinteSencond() throws Exception {
while(true)
{
synchronized (xlock) {
if (cout<=0){
xlock.wait();
}
cout--;
System.out.println("2:"+cout);
}
Thread.sleep(1000);
}
}
class PrintOne extends Thread{
public void run() {
try {
PrinteFirst();
}
catch (Exception ex) {
System.out.println(ex.getMessage() );
}
}
}
class PrintTwo extends Thread{
public void run(){
try {
PrinteSencond();
}
catch (Exception ex) {
System.out.println(ex.getMessage() );
}
}
} public static void main(String[] args) {
GetOUt gt = new GetOUt();
gt.p1.start();
gt.p2.start();
}
}
public PrintOne p1;
public PrintTwo p2;
public int cout;
private Object xlock=new Object();
public GetOUt() {
p1=new PrintOne();
p2=new PrintTwo();
cout=0;
}
public void PrinteFirst() throws Exception {
while(true)
{
synchronized (xlock){
cout++;
if (cout>0){
xlock.notifyAll();
}
System.out.println("1:"+cout);
}
Thread.sleep(500);
}
}
public void PrinteSencond() throws Exception {
while(true)
{
synchronized (xlock) {
if (cout<=0){
xlock.wait();
}
cout--;
System.out.println("2:"+cout);
}
Thread.sleep(1000);
}
}
class PrintOne extends Thread{
public void run() {
try {
PrinteFirst();
}
catch (Exception ex) {
System.out.println(ex.getMessage() );
}
}
}
class PrintTwo extends Thread{
public void run(){
try {
PrinteSencond();
}
catch (Exception ex) {
System.out.println(ex.getMessage() );
}
}
} public static void main(String[] args) {
GetOUt gt = new GetOUt();
gt.p1.start();
gt.p2.start();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货