2 service96 service96 于 2016.03.02 18:35 提问

Java写交易客户端(多线程、对象数据传送等简单问题)

有如下几个类:

1、Ticker类
//此Ticker为简单java类,其属性与服务器传来的json字段对应,通过Decoder类反系列化json
//反系列化以后的数据,用以做逻辑判断,符合逻辑,则向服务器发出某种请求

public class Ticker implements Serializable {
private static final long serialVersionUID = 2015022601L;
private volatile Double buy;
private volatile Double contractId;

public void setBuy(Double buy) {
    this.buy = buy;
}

public void setContractId(Double contractId) {
    this.contractId = contractId;
}

}

public Double getBuy() {
    return buy;
}

public BigDecimal getContractId() {
    return contractId;
}

public Ticker() {
    super();
}

public Ticker( Double buy, Double contractId) {
    this.buy = buy;
    this.contractId = contractId;

}

}

2、Decoder类
//此类接收服务器传来的json(msg字符串),采用Gson将其反系列化
//此msg消息一直不断推送过来,比如第一次推送{buy:100,contractId:20},下一次可能是{buy:50,contractId:305}

public class Decoder implements Abc{
@Override
public void onReceive(String msg){
System.out.println(msg);

       if (msg.contains("ticker")) {
          Gson gson=new Gson();
          Ticker ticker=gson.fromJson(msg, Ticker.class);  //反系列化后得到的数据存于ticker对象
       }

}

}

3、Test类
//此类利用反系列化后的数据进行判断,然后向服务器发出某些请求

public class Test{
此类里需要用到Decoder里得到的ticker对象的buy及contractId属性值,
比如此类一直在做以下判断
if (buy>contractId){
向服务器发出一次请求
}

问题:
(1),Test类怎么才能得到Decoder类里实例化的ticker对象的属性值(buy,contractId),是在Ticker加上一个构造方法?还是在Decoder类里写一个方法?或者其他?请给出实际代码。
(付:这是一个线程间通讯的问题么?)

(2),Decoder类一直每秒几次的转换服务器推送来的json,每一次得到的ticker对象地址不一样,其ticker只有最近一个的属性有用,这样是不是产生了大量的垃圾,还是说虽然地址不一样,但后产生的ticker自动覆盖了前面的ticker对象?

(3),如果此程序采用多线程,同时还使用SWT写了一个UI类,是否要再写一个类用来更新ticker对象的属性到UI界面上(或者采用Eclipse数据绑定的办法)?
     现在相当于:
               Decoder类一直不断在进行json转换,
               UI类一直在把ticker对象的属性数据更新到UI界面(或者用其他办法更新上去),
               Test类也一直在使用ticker的属性值进行数据的逻辑判断,
               此程序是否应该是至少三个线程?那具体怎么实现多线程(每个类都实现Runnable接口?)?主方法是该放在UI类里,还是放在客服端里(Test类是否可作为客服端)?
               请请给出具体多线程实现的代码?

(4)如果Test类用于逻辑判断的属性值buy和contractId不采用Decoder类里产生的,而是去UI界面上再次取得,那这个取得过程是否与(2)问的解决办法一样?

真心求教,成功发财了发个大红包!

1个回答

devmiao
devmiao   Ds   Rxr 2016.03.02 19:30
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!