ThreadGroup

java.lang.ThreadGroup,ThreadGroup有很多优势,最重要的一点就是它可以对线程进行遍历,知道那些线程已经运行完毕,还有那些线程在运行。关于ThreadGroup的使用代码如下:
class MyThread extends Thread { 
boolean stopped;
MyThread(ThreadGroup tg, String name) {
super(tg, name);
stopped = false;
}
public void run() {
System.out.println(Thread.currentThread().getName() + " starting.");
try {
for (int i = 1; i < 1000; i++) {
System.out.print(".");
Thread.sleep(250);
synchronized (this) {
if (stopped)break;
}
}
} catch (Exception exc) {
System.out.println(Thread.currentThread().getName() + " interrupted.");
}
System.out.println(Thread.currentThread().getName() + " exiting.");
}
synchronized void myStop() {
stopped = true;
}
}
public class Main {
public static void main(String args[]) throws Exception {
ThreadGroup tg = new ThreadGroup("My Group");
MyThread thrd = new MyThread(tg, "MyThread #1");
MyThread thrd2 = new MyThread(tg, "MyThread #2");
MyThread thrd3 = new MyThread(tg, "MyThread #3");
thrd.start();
thrd2.start();
thrd3.start();
Thread.sleep(1000);
System.out.println(tg.activeCount() + " threads in thread group.");
Thread thrds[] = new Thread[tg.activeCount()];
tg.enumerate(thrds);
for (Thread t : thrds)
System.out.println(t.getName());
thrd.myStop();
Thread.sleep(1000);
System.out.println(tg.activeCount() + " threads in tg.");
tg.interrupt();
}
}

1.ThreadGroup可以遍历线程,知道那些线程已经运行完毕,那些还在运行

2.可以通过ThreadGroup.activeCount知道有多少线程从而可以控制插入的线程数
[url]http://www.cjskb.cn[/url]
### 使用和配置 JMeter 中的 Stepping Thread Group Stepping Thread Group 是 Apache JMeter 的一种线程组扩展插件,用于模拟逐步增加或减少负载的压力测试场景。它允许用户定义一组参数来控制虚拟用户的数量及其执行方式。以下是关于如何使用和配置 Stepping Thread Group 的详细介绍。 #### 1. 安装 Stepping Thread Group 插件 为了使用 Stepping Thread Group,需要先安装 JMeter Plugins Manager 并通过其下载并安装该插件。具体操作如下: - 打开 JMeter 后,在菜单栏中找到 `Options -> Plugins Manager`。 - 转到 `Available Plugins` 标签页,搜索 `Stepping Thread Group`。 - 勾选此插件并点击右侧的 `Apply Changes and Restart JMeter` 按钮完成安装[^1]。 #### 2. 配置 Stepping Thread Group 参数 在成功安装后,可以在 Test Plan 下方右键单击,选择 `Add -> Threads (Users) -> Stepping Thread Group` 来添加一个新的 Stepping Thread Group。以下是主要参数说明: - **Start Threads Count**: 初始启动的线程数(即初始并发用户数)。 - **End Threads Count**: 测试结束时的最大线程数(最终并发用户数)。 - **Thread Will Start Within**: 设置达到最大线程所需的时间间隔(单位:秒),表示线程逐渐增加的速度。 - **Hold Load For**: 维持峰值负载时间长度(单位:秒)。在此期间,所有线程将以满负荷运行。 - **Ramp-Up Steps Count**: 将总线程分为多少步进行加载,默认每一步会均匀分配一定量的新增线程。 这些设置共同决定了整个压力测试过程中用户行为的变化模式。 #### 3. 示例脚本展示 下面是一个简单的例子演示如何创建一个基于 Stepping Thread Group 的性能测试计划: ```jmeter <threadGroup guiclass="StepThreadGroupGui" testclass="StepThreadGroup"> <stringProp name="ThreadGroup.num_threads">1</stringProp> <!-- 开始线程 --> <stringProp name="ThreadGroup.ramp_time">60</stringProp> <longProp name="ThreadGroup.start_time">1598472000000</longProp> <longProp name="ThreadGroup.end_time">1598475600000</longProp> <boolProp name="ThreadGroup.scheduler">false</boolProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController"/> <!-- 特定于 StepThreadGroup 的属性 --> <stringProp name="stepping_threadgroup_startThreadsCount">1</stringProp> <stringProp name="stepping_threadgroup_endThreadsCount">100</stringProp> <stringProp name="stepping_threadgroup_stepDuration">60</stringProp> <stringProp name="stepping_threadgroup_holdTime">300</stringProp> <stringProp name="stepping_threadgroup_rampUpStepsCount">10</stringProp> </threadGroup> ``` 上述 XML 文件片段展示了如何利用 Stepping Thread Group 构建动态变化的工作负载模型。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值