国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

常用的模擬并發(fā)的四種方式+工具,超級實用!

0
分享至

Java精選面試題(微信小程序):5000+道面試題和選擇題,真實面經(jīng)簡歷模版,包含Java基礎(chǔ)、并發(fā)、JVM、線程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架構(gòu)設(shè)計、大廠真題等,在線隨時刷題!

一、Postman

Postman是一個款http請求模擬工具

首先演示一下postman最基本的使用

創(chuàng)建一個Springboot項目,測試的代碼如下:

import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("test") public class TestConrtoller {     @GetMapping("demo")     public String testDemo() {         return "result~";     } }

為了便于操作,一般會將

http://127.0.0.1:8080是經(jīng)常使用的地址+端口號,可以設(shè)置為環(huán)境

點(diǎn)擊右上角的設(shè)置圖標(biāo)

選擇global

輸入信息

以后再進(jìn)行測試就能這樣搞簡寫了

知道基本使用之后,我們來看一下如何模擬并發(fā)測試

填寫基本信息后,創(chuàng)建

這個時候會創(chuàng)建出Concurrency的文件夾,我們可以把剛才測試的demo的例子放進(jìn)這個文件夾下

這個時候就可以在Concurrency下看到這個接口測試了

選擇并發(fā)測試:

這個時候彈出我們想要的框了

點(diǎn)擊Run Concurrency

你可以立馬感覺到CPU在“燃燒”,因為要記錄并打印日志,顯示的話是一條一條來的,其實測試的速度,要比你看到的打印的日志的速度快,綠色表示正常

二、Apache Bench(AB)

ApacheBench 是 Apache 服務(wù)器自帶的一個web壓力測試工具,簡稱ab。

ab又是一個命令行工具,對發(fā)起負(fù)載的本機(jī)要求很低,根據(jù)ab命令可以創(chuàng)建很多的并發(fā)訪問線程,模擬多個訪問者同時對某一URL地址進(jìn)行訪問,因此可以用來測試目標(biāo)服務(wù)器的負(fù)載壓力??偟膩碚fab工具小巧簡單,上手學(xué)習(xí)較快,可以提供需要的基本性能指標(biāo),但是沒有圖形化結(jié)果,不能監(jiān)控。

使用的話,首先需要安裝Apache服務(wù)器

網(wǎng)站:http://httpd.apache.org/download.cgi

因為我的操作系統(tǒng)是windows10, 這里選擇File for Microsoft Windows

Linux下的安裝是非常簡單的,這里不再演示

選擇 ApacheHaus

進(jìn)入下載頁面 選擇適合自己電腦的版本

文件解壓到本地文件夾下,如果不是解壓在c盤,需要設(shè)置參數(shù),注意文件路徑最好都是英文

關(guān)于需要設(shè)置參數(shù),conf->httpd.conf 使用文本編輯器打開,

需要修改的有三個地方:

運(yùn)行根目錄,修改成自己解壓到本地的路徑

監(jiān)聽端口,默認(rèn)監(jiān)聽端口是80,如果已被使用會報錯需要修改,如果80端口未被使用,可不修改;如果修改了監(jiān)聽端口,則需要把ServerName localhost也相應(yīng)改成同樣的端 口號

DocumentRoot 測試文件存放地,且該目錄必須存在

配置完成后,命令行cmd進(jìn)入D:\softUtil\Apache24\bin目錄下

httpd.exe  -k  install

啟動:

httpd.exe -k start

測試:

  • -n:請求數(shù)

  • -c: 并發(fā)數(shù)

三、并發(fā)模擬工具JMeter

JMeter也是一款性能測試工具,是圖形化的。

下載地址:傳送門 http://jmeter.apache.org/

需要Java8+的環(huán)境

解壓到你覺得合適的目錄下(注意最好是英文路徑)

進(jìn)入它的bin目錄下 啟動jmeter.bat即可

使用很簡單,首先在測試計劃部分新建一個線程組

設(shè)置好基礎(chǔ)信息后添加HTTP請求(基本信息設(shè)置好沒有OK哈,直接添加HTTP請求)

填寫HTTP請求相關(guān)的內(nèi)容

之后還要添加監(jiān)聽器,這里選擇是圖形結(jié)果

再添加一個查看結(jié)果樹吧

在運(yùn)行之前打開log Viewer

下面開始運(yùn)行:

執(zhí)行成功,來感受一下結(jié)果:

點(diǎn)進(jìn)去

查看結(jié)果樹

四、代碼模擬

這里需要用到一個類,就是CountDownLatch。

CountDownLatch是一個計數(shù)器閉鎖,通過它可以完成類似于阻塞當(dāng)前線程的功能,即:一個線程或多個線程一直等待,直到其他線程執(zhí)行的操作完成。

CountDownLatch用一個給定的計數(shù)器來初始化,該計數(shù)器的操作是原子操作,即同時只能有一個線程去操作該計數(shù)器。調(diào)用該類await方法的線程會一直處于阻塞狀態(tài),直到其他線程調(diào)用countDown方法使當(dāng)前計數(shù)器的值變?yōu)榱悖看握{(diào)用countDown計數(shù)器的值減1。當(dāng)計數(shù)器值減至零時,所有因調(diào)用await()方法而處于等待狀態(tài)的線程就會繼續(xù)往下執(zhí)行。這種現(xiàn)象只會出現(xiàn)一次,因為計數(shù)器不能被重置。

下圖和它的方法可以體現(xiàn)出來:

CountDownLatch類只提供了一個構(gòu)造器:

public CountDownLatch(int count) {  };  //參數(shù)count為計數(shù)值

然后下面這3個方法是CountDownLatch類中最重要的方法(上圖能夠反映出來)

public void await() throws InterruptedException { };   //調(diào)用await()方法的線程會被掛起,它會等待直到count值為0才繼續(xù)執(zhí)行 public boolean await(long timeout, TimeUnit unit) throws InterruptedException { };  //和await()類似,只不過等待一定的時間后count值還沒變?yōu)?的話就會繼續(xù)執(zhí)行 public void countDown() { };  //將count值減1

下面還需要看一個類Semaphore

Semaphore與CountDownLatch相似,不同的地方在于Semaphore的值被獲取到后是可以釋放的,并不像CountDownLatch那樣一直減到底。另外,推薦公眾 號Java精選,回復(fù)java面試,獲取面試資料,支持在線刷題。

它也被更多地用來限制流量,類似閥門的 功能。如果限定某些資源最多有N個線程可以訪問,那么超過N個主不允許再有線程來訪問,同時當(dāng)現(xiàn)有線程結(jié)束后,就會釋放,然后允許新的線程進(jìn)來。有點(diǎn)類似于鎖的lock與 unlock過程。相對來說他也有兩個主要的方法:

  • 用于獲取權(quán)限的acquire(),其底層實現(xiàn)與CountDownLatch.countdown()類似;

  • 用于釋放權(quán)限的release(),其底層實現(xiàn)與acquire()是一個互逆的過程。

通過這兩個類可以進(jìn)行并發(fā)的模擬:

測試一下:

import lombok.extern.slf4j.Slf4j; import java.util.concurrent.*; @Slf4j publicclass CuncurrencyTest {     // 請求總數(shù)     publicstaticint clientTotal = 5000;     // 同時并發(fā)執(zhí)行的線程總數(shù)     publicstaticint threadTotal = 200;     publicstaticint count = 0;     public static void main(String[] args) throws InterruptedException {         // 定義線程池         ExecutorService executorService = Executors.newCachedThreadPool();         // 定義信號量 最大的線程數(shù)量         final Semaphore semaphore = new Semaphore(threadTotal);         final CountDownLatch countDownLatch = new CountDownLatch(clientTotal);         for (int i = 0; i < clientTotal; i++) {             executorService.execute(() -> {                 try {                     semaphore.acquire();                     add();                     semaphore.release();                 } catch (InterruptedException e) {                     e.printStackTrace();                     log.error("exception",e);                 }                 countDownLatch.countDown();             });         }         countDownLatch.await();         executorService.shutdown();         log.info("count:{}",count);     }     private static void  add() {         count++;     } }

因為count不是線程安全的,且沒有作防護(hù)措施,結(jié)果是錯的

上面是對代碼的并發(fā)模擬的簡單形式,值得注意的是,這里提到的兩個類不是專門做并發(fā)模擬,它們的用途很廣泛,大家可以了解一下。

版權(quán)聲明:本文為CSDN博主「沉?xí)浴沟脑瓌?chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

https://blog.csdn.net/qq_42322103/article/details/102736170

公眾號“Java精選”所發(fā)表內(nèi)容注明來源的,版權(quán)歸原出處所有(無法查證版權(quán)的或者未注明出處的均來自網(wǎng)絡(luò),系轉(zhuǎn)載,轉(zhuǎn)載的目的在于傳遞更多信息,版權(quán)屬于原作者。如有侵權(quán),請聯(lián)系,筆者會第一時間刪除處理!

最近有很多人問,有沒有讀者交流群!加入方式很簡單,公眾號Java精選,回復(fù)“加群”,即可入群!

文章有幫助的話,點(diǎn)在看,轉(zhuǎn)發(fā)吧!

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
被曝生下畸形兒傳聞僅1月,闞清子官宣喜訊,連發(fā)三文表明態(tài)度

被曝生下畸形兒傳聞僅1月,闞清子官宣喜訊,連發(fā)三文表明態(tài)度

一口娛樂
2026-01-29 09:31:09
已確認(rèn),浙江有大到暴雪!今晚變天

已確認(rèn),浙江有大到暴雪!今晚變天

魯中晨報
2026-01-29 13:39:09
不敢置信!女子十二樂坊成員直播養(yǎng)不活自己,一晚上打賞不到3000

不敢置信!女子十二樂坊成員直播養(yǎng)不活自己,一晚上打賞不到3000

云中浮生
2026-01-24 21:37:46
奇葩!35歲女子4年不回家,母親來探望卻被懟,女子:就當(dāng)我死了

奇葩!35歲女子4年不回家,母親來探望卻被懟,女子:就當(dāng)我死了

娛樂帝皇丸
2026-01-28 15:18:51
16歲武漢男生凌晨離家,失聯(lián)超70小時, 父親:未帶手機(jī)現(xiàn)金,最后出現(xiàn)在橋上不見蹤跡

16歲武漢男生凌晨離家,失聯(lián)超70小時, 父親:未帶手機(jī)現(xiàn)金,最后出現(xiàn)在橋上不見蹤跡

大風(fēng)新聞
2026-01-29 13:53:22
人民日報怒批!炫富、偷稅749萬、跑國外,現(xiàn)又來“割內(nèi)地韭菜”

人民日報怒批!炫富、偷稅749萬、跑國外,現(xiàn)又來“割內(nèi)地韭菜”

小熊侃史
2026-01-18 07:20:09
港股地產(chǎn)股大漲,融創(chuàng)中國漲超30%

港股地產(chǎn)股大漲,融創(chuàng)中國漲超30%

每日經(jīng)濟(jì)新聞
2026-01-29 11:39:06
外交部:繼續(xù)深化國際執(zhí)法合作 加大力度打擊網(wǎng)賭電詐

外交部:繼續(xù)深化國際執(zhí)法合作 加大力度打擊網(wǎng)賭電詐

財聯(lián)社
2026-01-29 15:26:24
尼帕病毒來勢洶洶,建議:每家最好備6樣?xùn)|西,關(guān)鍵時刻能救命呢

尼帕病毒來勢洶洶,建議:每家最好備6樣?xùn)|西,關(guān)鍵時刻能救命呢

現(xiàn)代小青青慕慕
2026-01-28 08:59:53
阿富汗的鍋,拜登不背!

阿富汗的鍋,拜登不背!

山河路口
2026-01-28 23:12:39
心理學(xué)上有一個詞叫:梅拉賓法則(搞好人際關(guān)系最好的辦法)

心理學(xué)上有一個詞叫:梅拉賓法則(搞好人際關(guān)系最好的辦法)

經(jīng)濟(jì)觀察報
2025-09-01 10:06:25
1971年,劉思齊蒙冤入獄后向毛主席求助,毛澤東作出:娃娃們無罪

1971年,劉思齊蒙冤入獄后向毛主席求助,毛澤東作出:娃娃們無罪

史海孤雁
2026-01-27 18:02:17
瞞不住了!美媒:美軍高官已進(jìn)臺島指揮導(dǎo)彈戰(zhàn),戰(zhàn)時先炸福建沿海

瞞不住了!美媒:美軍高官已進(jìn)臺島指揮導(dǎo)彈戰(zhàn),戰(zhàn)時先炸福建沿海

史智文道
2026-01-29 16:14:14
要打就打痛!中國手段已升級,日本:中方不批準(zhǔn)駐重慶總領(lǐng)事任命

要打就打痛!中國手段已升級,日本:中方不批準(zhǔn)駐重慶總領(lǐng)事任命

通文知史
2026-01-28 14:30:03
太頂了!明明什么都沒露,卻性感得要命!

太頂了!明明什么都沒露,卻性感得要命!

貴圈真亂
2025-12-20 12:02:06
最新傷勢情況曝光,德約科維奇直言:對辛納絕不舉白旗

最新傷勢情況曝光,德約科維奇直言:對辛納絕不舉白旗

體育妞世界
2026-01-29 12:38:11
起風(fēng)了!加拿大已改口,禁止與中國簽協(xié)定,65萬噸油菜籽白買了?

起風(fēng)了!加拿大已改口,禁止與中國簽協(xié)定,65萬噸油菜籽白買了?

墨印齋
2026-01-29 11:47:54
加快男性衰老的因素:喝酒僅第5,排在第1的,很多男性還沒發(fā)現(xiàn)!

加快男性衰老的因素:喝酒僅第5,排在第1的,很多男性還沒發(fā)現(xiàn)!

醫(yī)學(xué)科普匯
2026-01-27 10:41:31
中國人一年少買了10萬輛進(jìn)口寶馬

中國人一年少買了10萬輛進(jìn)口寶馬

第一財經(jīng)資訊
2026-01-29 10:34:13
1973年,毛主席問楊振寧:萬壽無疆科學(xué)嗎?楊振寧的回答,讓主席笑了

1973年,毛主席問楊振寧:萬壽無疆科學(xué)嗎?楊振寧的回答,讓主席笑了

寄史言志
2026-01-24 17:53:13
2026-01-29 17:15:00
Java精選
Java精選
一場永遠(yuǎn)也演不完的戲
1768文章數(shù) 3859關(guān)注度
往期回顧 全部

科技要聞

周亞輝的AI新賭局:國內(nèi)太卷 出海另起爐灶

頭條要聞

女大學(xué)生到東北游玩暈倒雪地凍傷 三根手指或面臨截肢

頭條要聞

女大學(xué)生到東北游玩暈倒雪地凍傷 三根手指或面臨截肢

體育要聞

詹姆斯哭了!騎士視頻致敬41歲超巨

娛樂要聞

張譯不再隱瞞!公開回應(yīng)退圈息影真相

財經(jīng)要聞

崔東樹:中國汽車未來年銷或達(dá)5000萬輛

汽車要聞

車長超5米還帶后輪轉(zhuǎn)向 比亞迪海豹08/海獅08將亮相

態(tài)度原創(chuàng)

時尚
教育
手機(jī)
公開課
軍事航空

冬天大衣怎么穿才更好看?選好顏色、找對單品,高級簡約又大氣

教育要聞

“國家課程落地吳江行動叢書”發(fā)布!聚焦課改前沿,共探育人新路!

手機(jī)要聞

游戲直播神器!iQOO 15 Ultra支持一鍵投屏 開播0門檻

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

中國代表:支持伊朗國家穩(wěn)定 武力解決不了問題

無障礙瀏覽 進(jìn)入關(guān)懷版