栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Jmeter中的ThreadLocal线程变量

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jmeter中的ThreadLocal线程变量

背景

        使用Jmeter进行并发定制并发测试的时候,必须要考虑到线程的安全性。测试中的每个线程是不是都要有自己的独立变量,如果不进行控制就会产生多个线程操作同一个变量的情况,尤其是在定制测试中具有连接性质的对象时候,就会产生无法预见的后果。我这里的情况就是写好的Jmeter定制函数,单线程运行的时候一切正常,一旦并发就会报各种交易失败。

问题解决

        上一篇总结中使用protected修饰的类变量,在同一个包不同的类中直接使用,非常方便。不过简单的protected修饰变量就会出现多个线程使用同一个变量的问题,仍然解决不了问题。这时候就要用到ThreadLocal,在每个线程中都建立自己进程内的局部变量,这样就能保证每个进程有自己的连接对象了。

        创建线程局部变量Bp_local,并声明变量类型为Bp_Target。这是在创建进程的时候在线程对象中预留一块内存保存Bp_Target型变量。

public class test{

        protected static ThreadLocal Bp_local=new Threadlocal<>(); 

        public void  init(){

                Bp_Target BP=new Bp_Target();

                Bp_local.set(BP);

        }        

}

         执行init()后,先正常生成的Bp_Target型变量BP,然后通过set方法把这个变量保存在预留的内存中。

        如何使用这个变量?通过以下方法:

test.Bp_local.get();

         这样就可以在别的函数中直接使用该线程中自己的变量了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592547.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号