请教个关于多线程调用webservice接口是不是会相互影响的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教个关于多线程调用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有共用对象,如数据库). 参考技术A 如果你担心有影响,就要想办法多写一两个(可执行的)测试用例来!否则,不必杞人忧天。编程以测试为准,而不是以理论为准。另外,不能说什么“使用实例就有影响、调用方法就没有影响”。这两个概念根本看不出“有还是没有”影响,所以是不置可否的。实际上,你去想想“自己能不能写出什么测试用例来获得bug”,这就是让你去稍微深入一点去想想“到底怎样才叫做有影响”。编程需要深入一点、主动一点,既然我们说不出什么“影响”来那么也不用怕,只要你有足够的测试就有勇气用你自己的方法继续下去。 参考技术B 设计一个测试用例,就是要想到“我这个测试可以深入到代码中的哪一行,我这个负载压力可以压到代码中的哪一行”,也就是有点深度。当你经常写测试,就好像你自己动手写的那样,并且集成在一起让它们随时可以自动反复去跑(例如你中午吃饭的时候就可以启动测试,然后回来时再来处理发现的第一个问题),那么技术才真正提高了,不用活在“还是不确定”的阴影里了。 参考技术C Wevservice接口是MES系统那边的,我这边只是客户端,没法控制那边,所以只能用他们给的接口 参考技术D 感觉WebServices还不如写个通用的Socket查询服务程序来的方便。以上是关于请教个关于多线程调用webservice接口是不是会相互影响的问题的主要内容,如果未能解决你的问题,请参考以下文章