日期:2014-05-17  浏览次数:20971 次

请教个关于多线程调用webservice接口是否会相互影响的问题
对webservice接口不太了解,请教个问题:

IT数据库开放了一个webservice接口,根据输入的查询信息查询数据库后返回查询结果,一次查询大概需要十多秒。

webservice服务名称是MESWebservice,访问过程中先初始化一个实例,假设命名为temp:
MESWebservice.commservice temp = new MESWebservice.commservice();

随后开线程服务ThreadService,里面使用temp.process()函数处理数据,线程里面查询返回结果大概需要十多秒。

想问个问题:如果同一时间内有2个以上线程同时使用temp.process()处理数据,各个线程之间会不会相互影响。

之所以问,是看论坛上说temp是个实例,实例的话如果像变量一样那么线程之间会有相互影响。如果这个实例是方法一样的东西那就不会相互影响,目前不太确定论坛上说temp是个实例到底属于哪一种。还请知道的指导下,谢谢。

------解决方案--------------------
会可能相互影响,因为是多线程操作同一个对象(实例).
如果是每个线程建1个MESWebservice.commservice实例,那影响基本在web server端(如果server有共用对象,如数据库).
------解决方案--------------------
设计一个测试用例,就是要想到“我这个测试可以深入到代码中的哪一行,我这个负载压力可以压到代码中的哪一行”,也就是有点深度。

当你经常写测试,就好像你自己动手写的那样,并且集成在一起让它们随时可以自动反复去跑(例如你中午吃饭的时候就可以启动测试,然后回来时再来处理发现的第一个问题),那么技术才真正提高了,不用活在“还是不确定”的阴影里了。