`
gallop_liu
  • 浏览: 110078 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

多线程并发测试类

阅读更多

同时并发的多线程测试类模板:

package test;

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CyclicBarrier;

public class MultithreadTest {

	final int count = 250;
	static long beginTime;
	
	
	class MyThread implements Runnable {
		private CountDownLatch latch;
		private CyclicBarrier barrier;
		
		public MyThread(CountDownLatch latch,CyclicBarrier barrier){
			this.latch = latch;
			this.barrier = barrier;
		}
		@Override
		public void run() {
			try {
				barrier.await();
			} catch (InterruptedException e1) {
				e1.printStackTrace();
			} catch (BrokenBarrierException e1) {
				e1.printStackTrace();
			}
			new Thread(new TaskAlarm(latch)).start();
		}
	}
	
	class TaskAlarm implements Runnable{
		private CountDownLatch latch;
		
		public TaskAlarm(CountDownLatch latch){
			this.latch = latch;
		}
		
		@Override
		public void run() {
			for(int i=0;i<20;i++){
				//测试代码。。。。
			}
			System.out.println(Thread.currentThread().getName()+":,耗时:"+(System.currentTimeMillis()-beginTime)+"ms");
			latch.countDown();
		}
		
	}
	
	private void runThread() throws InterruptedException {
		CountDownLatch latch = new CountDownLatch(count);
		CyclicBarrier barrier = new CyclicBarrier(count);
		
		for (int i = 0; i < count; i++) {
			Thread tt = new Thread(new MyThread(latch,barrier));
			tt.start();
		}
		latch.await();
		System.out.println("消耗的总时间为:"+(System.currentTimeMillis()-beginTime));
		
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		beginTime = System.currentTimeMillis();
		try {
			new MultithreadTest().runThread();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

}

 

分享到:
评论

相关推荐

    Java 模拟线程并发

    在Java中,线程并发可以通过多种方式实现,包括继承Thread类、实现Runnable接口以及使用ExecutorService和Future等高级API。下面将详细探讨这些知识点。 首先,Java中创建线程主要有两种方法。一种是通过继承Thread...

    多线程并发代码的IntelliJ IDEA中调试方法.docx

    ### 多线程并发代码的IntelliJ IDEA中调试方法 #### 一、代码解析 在探讨如何使用IntelliJ IDEA进行多线程代码调试之前,先了解代码本身的功能。 **1.1 代码功能** 代码的主要目的是计算两个非常大的数字的阶乘...

    多线程测试(是多线程的测试,对学习多线程的朋友有用)

    4. 并发测试:评估程序在高并发场景下的稳定性和响应能力。 5. 错误处理和异常测试:确保在多线程环境下程序能够正确捕获和处理异常。 总之,多线程测试是确保软件在并发环境中正确、高效运行的关键步骤。通过深入...

    C#的日志类,支持多线程调用

    一个C#的日志类,支持多线程调用 经过10000线程并发测试未发现问题

    C#(Csharp)多线程HTTP并发请求(HttpWebRequest)采集蜘蛛

    本文档主要介绍如何使用C#的HttpWebRequest类实现多线程并发HTTP请求,以创建高效的采集蜘蛛程序。 首先,网络爬虫的工作流程通常包括以下几个步骤: 1. **初始化待下载和已下载集合**:为了跟踪URL状态,避免重复...

    线程安全测试类

    线程安全测试类的设计是为了确保在并发环境中,多个线程访问共享资源时不会导致数据的不一致或异常行为。本测试主要关注`synchronized`关键字的使用,以及它如何影响线程同步和线程执行顺序。 `synchronized`关键字...

    MultiHttp高性能的PHP封装的HTTPRestful多线程并发请求库

    4. **多线程并发请求**:在编程中,多线程允许同时执行多个任务,提高程序的执行效率。并发请求指的是在单个执行上下文中同时发送多个HTTP请求,提高了数据获取的速度。 5. **库**:在软件开发中,库是一组预先编写...

    JUNIT多线程测试

    然后,我们可以在测试类中声明这个规则,并在测试方法中使用它: ```java import org.junit.Rule; import org.junit.Test; import static org.junit.Assert.*; public class MultiThreadedClassTest { @Rule ...

    delphi7 多线程测试(40个线程)

    本主题聚焦于Delphi 7中实现的多线程测试,特别是涉及40个并发线程的情况。Delphi是Embarcadero开发的一款集成开发环境(IDE),它以其高效的Pascal方言——Object Pascal,以及丰富的组件库闻名,适用于创建Windows...

    java socket多线程文件传输实例项目

    总结来说,Java Socket多线程文件传输实例项目是一个综合性的实践,涵盖了网络编程、多线程并发控制以及文件I/O等多个核心Java技术。通过这个项目,开发者可以深入理解如何在实际场景中运用这些技术,解决并发文件...

    java并发测试

    总之,进行Java并发测试是为了确保系统在多线程环境中的健壮性和效率。通过编写和运行`MutiThreadTest.java`这样的测试用例,我们可以发现并解决潜在的并发问题,提升软件质量。同时,利用第三方库如`GroboUtils-5-...

    高并发多线程处理demo-java.rar

    在Java编程领域,高并发和多线程是关键的技术之一,尤其在服务器端应用和大数据处理中至关重要。这个"高并发多线程处理...通过学习和理解这些概念,开发者可以更好地掌握如何在Java中实现高效、安全的多线程并发处理。

    多线程与高并发-电子.pdf

    多线程与高并发是计算机科学中非常重要的两个概念,它们在提高软件程序的性能、响应速度和资源利用率方面起着至关重要的作用。在当今的互联网时代,特别是在产业互联网和5G技术的推动下,多线程和高并发的应用变得...

    C#多线程测试程序

    在C#编程中,多线程是一项核心技能,特别是在处理并发任务、提高应用程序性能和响应...通过分析和学习这个测试程序,你可以更好地理解C#多线程编程的核心概念,并在实际项目中应用这些知识,提高代码的并发性能和效率。

    现代多线程 JAVA和c++多线程实现 测试和调试

    测试多线程程序是一项复杂的工作,因为并发问题往往难以预测且只在特定条件下出现。单元测试框架如JAVA的JUnit和C++的Google Test可以辅助测试,但可能需要专门设计测试用例来触发并发问题。死锁、竞态条件、资源...

    多线程测试

    在“Thread_test_plus”这个压缩包文件中,可能包含了用于测试多线程实现的代码示例。通过分析这些代码,我们可以学习如何在实际应用中创建、管理和同步线程,例如使用Java的`Thread`类、`ExecutorService`或者C++的...

    多线程并发抢票案例.zip

    在IT行业中,多线程是一种常见的编程技术,尤其在高并发场景下,如我们的主题“多线程并发抢票案例”。这种技术允许程序同时执行多个不同的任务,从而提高效率和响应速度。在抢票系统中,多线程的运用至关重要,因为...

    多线程访问网页测试

    总结来说,这个“多线程访问网页测试”项目展示了如何在C#中利用多线程技术并结合HTTP通信、HTML解析和线程同步方法来实现高效的并发任务处理。通过学习和实践此类项目,开发者可以提升在高并发场景下的编程能力,更...

    多线程,runtime测试demo

    6. **线程安全的数据结构**:可能会使用`ConcurrentHashMap`、`AtomicInteger`等并发安全的类,确保在多线程环境下数据的一致性。 7. **线程状态和生命周期**:可能通过示例展示线程的五种基本状态(新建、就绪、...

Global site tag (gtag.js) - Google Analytics