JAVA编程:线程间共享数据(实用sy…

本例子为实现“监测服务器连接状态”功能的代码片段:
包装数据的类RightAnswer:
//----------------------------------------------------------------------------------------
private class RightAnswer {
    public RightAnswer( int rightAnswer ){
        this . rightAnswer = rightAnswer;
    }
    public int getValue (){ //读取数据
        synchronized( this ){
            return rightAnswer;
        }
    }
    public void valueMinus (){ //数据递减1
        synchronized( this ){
            rightAnswer --;                    
        }    
    }
    public void valueAdd (){ //数据递增1
        synchronized( this ){
            rightAnswer ++;                    
        }    
    }
    int rightAnswer;
}
//----------------------------------------------------------------------------------------=
synchronized( this ){}:同步代码段,花括号内的操作一个时间内只能有一个线程执行,因为这个类的三个方法均用this加锁,这三个方法在同一时间内也只能执行一个,如此保证了对数据操作的有效性

操作这个RightAnswer类对象的两个类,构造方法时传入RightAnswer类对象,实现对象的引用
//-----------------------------------------------------------------------------------------
private class ServerAnswerTimerTask extends TimerTask {
    public ServerAnswerTimerTask( RightAnswer rightAnswer ){                
        this . rightAnswer = rightAnswer;
    }
    @Override
    public void run() {
        rightAnswer . valueMinus();
    }
   
    RightAnswer rightAnswer;
}

private class RightAnswerAddThread implements Runnable {
    public RightAnswerAddThread( RightAnswer rightAnswer ){
        this . rightAnswer = rightAnswer;
    }
    @Override
    public void run() {
        this . rightAnswer . valueAdd();
    }
    RightAnswer rightAnswer;
}
//-----------------------------------------------------------------------------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值