国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

什么是 Java 并行流?

Java 并行流是 Java 8 及更高版本的一項功能,旨在利用處理器的多個核心。通常,任何 Java 代碼都有一個處理流,按順序執(zhí)行。而通過使用并行流,我們可以將代碼劃分為多個流,這些流在單獨的內(nèi)核上并行執(zhí)行,最終結(jié)果是各個結(jié)果的組合。然而,執(zhí)行順序不受我們控制。

因此,如果無論執(zhí)行順序如何,結(jié)果都不受影響,并且一個元素的狀態(tài)不影響另一個元素以及數(shù)據(jù)源也不受影響,那么建議使用并行流。

Java并行流效果圖

為什么使用并行流?

引入并行流是為了提高程序的性能,但選擇并行流并不總是最佳選擇。在某些情況下,我們需要按特定順序執(zhí)行代碼,在這些情況下,我們最好使用順序流來執(zhí)行任務,但會犧牲性能。兩種流之間的性能差異僅在大型程序或復雜項目中才需要考慮。對于小規(guī)模的程序,它甚至可能不會被注意到。基本上,當順序流表現(xiàn)不佳時,您應該考慮使用并行流。

創(chuàng)建流的方法 

我們可以通過兩種方式創(chuàng)建,下面列出并稍后描述如下:

  1. 在流上使用parallel()方法

  2. 在集合上使用parallelStream() 

方法1:在流上使用parallel()方法

BaseStream 接口的parallel () 方法返回等效的并行流。讓我們通過一個例子來解釋它是如何工作的。

在下面給出的代碼中,我們創(chuàng)建一個文件對象,該對象指向系統(tǒng)中預先存在的“txt”文件。然后我們創(chuàng)建一個 Stream,一次從文本文件中讀取一行。然后我們使用parallel()方法在控制臺上打印讀取的文件。每次運行的執(zhí)行順序都不同,您可以在輸出中觀察到這一點。下面給出的兩個輸出具有不同的執(zhí)行順序。

例子 

// Java Program to Illustrate Parallel Streams 
// Using parallel() method on a Stream 

// Importing required classes 
import java.io.File; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.util.stream.Stream; 

// Main class 
// ParallelStreamTest 
public class GFG { 

	// Main driver method 
	public static void main(String[] args) throws IOException { 

		// Creating a File object 
		File fileName = new File("M:\\Documents\\Textfile.txt"); 

		// Create a Stream of string type 
		// using the lines() method to 
		// read one line at a time from the text file 
		Stream<String> text = Files.lines(fileName.toPath()); 

		// Creating parallel streams using parallel() method 
		// later using forEach() to print on console 
		text.parallel().forEach(System.out::println); 

		// Closing the Stream 
		// using close() method 
		text.close(); 
	} 
}

輸出: 

1A

輸出結(jié)果示意圖-1

1B

輸出結(jié)果示意圖-2

方法 2:在集合上使用parallelStream()

Collection 接口的parallelStream () 方法返回一個可能的并行流,以集合為源。讓我們通過一個例子來解釋它的工作原理。

執(zhí)行:

在下面給出的代碼中,我們再次使用并行流,但這里我們使用列表來讀取文本文件。因此,我們需要parallelStream()方法。

例子

// Java Program to Illustrate Parallel Streams 
// using parallelStream() method on a Stream 

// Importing required classes 
import java.io.File; 
import java.io.IOException; 
import java.nio.file.Files; 
import java.util.*; 

// Main class 
// ParallelStreamsTest 
public class GFG { 

	// Main driver method 
	public static void main(String[] args) 
		throws IOException 
	{ 

		// Creating a File object 
		File fileName 
			= new File("M:\\Documents\\List_Textfile.txt"); 

		// Reading the lines of the text file by 
		// create a List using readAllLines() method 
		List<String> text 
			= Files.readAllLines(fileName.toPath()); 

		// Creating parallel streams by creating a List 
		// using readAllLines() method 
		text.parallelStream().forEach(System.out::println); 
	} 
}

輸出:

輸出結(jié)果示意圖-3文章來源地址http://www.zghlxwxcb.cn/article/639.html

到此這篇關(guān)于什么是 Java 并行流?的文章就介紹到這了,更多相關(guān)內(nèi)容可以在右上角搜索或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

原文地址:http://www.zghlxwxcb.cn/article/639.html

如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請聯(lián)系站長進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 大數(shù)據(jù)學習(18)-任務并行度優(yōu)化

    大數(shù)據(jù)學習(18)-任務并行度優(yōu)化

    大數(shù)據(jù)學習 ??系列專欄: ??哲學語錄: 承認自己的無知,乃是開啟智慧的大門 ??如果覺得博主的文章還不錯的話,請點贊??+收藏??+留言??支持一下博主哦?? 對于一個分布式的計算任務而言,設置一個合適的并行度十分重要。Hive的計算任務由MapReduce完成,故并行度的

    2024年02月07日
    瀏覽(20)
  • GEMM優(yōu)化、并行優(yōu)化、算子優(yōu)化,從BLISlab項目入手!
GEMM重要且典型

    GEMM優(yōu)化、并行優(yōu)化、算子優(yōu)化,從BLISlab項目入手! GEMM重要且典型

    BLISlab 是一個開源教學項目,提供了完整的代碼范例和測試腳本教人如何一步步優(yōu)化矩陣乘法。為此, 張先軼(中科院博士,OpenBLAS國際知名開源項目發(fā)起人) 錄制了一個公開課系列,基于BLISlab項目給大家系統(tǒng)講解GEMM優(yōu)化。? 視頻三連發(fā),您能不能也三連發(fā)?“點贊--轉(zhuǎn)發(fā)

    2023年04月22日
    瀏覽(30)
  • rt下降40%?程序并行優(yōu)化六步法

    性能優(yōu)化是我們?nèi)粘9ぷ髦泻苤匾囊徊糠郑饕幸韵略颍?降低服務器和帶寬等硬件成本:用更少的資源處理更多的請求 提高現(xiàn)實世界的運行效率:人機處理效率存在數(shù)量級的偏差,同樣機器世界的效率提升能帶來現(xiàn)實世界效率提升的方法效果 提高用戶的體驗:解決響

    2024年02月05日
    瀏覽(15)
  • 【配電網(wǎng)優(yōu)化】基于串行和并行ADMM算法的配電網(wǎng)優(yōu)化研究(Matlab代碼實現(xiàn))

    【配電網(wǎng)優(yōu)化】基于串行和并行ADMM算法的配電網(wǎng)優(yōu)化研究(Matlab代碼實現(xiàn))

    ?? ?? ?? ?? 歡迎來到本博客 ?? ?? ?? ?? ?? 博主優(yōu)勢: ?? ?? ??博客內(nèi)容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ? 座右銘: 行百里者,半于九十。 ?? ?? ?? 本文目錄如下: ?? ?? ?? 目錄 ??1 概述 ??2 運行結(jié)果 ??3 參考文獻 ??4 Matlab代碼實現(xiàn) 隨

    2023年04月23日
    瀏覽(31)
  • 并行編程解決什么問題?

    并行編程解決什么問題?

    多線程爬蟲是指通過多個線程并發(fā)地請求網(wǎng)頁和解析響應,以提高爬蟲的效率和速度。在 Python 中可以使用 threading、Queue 和 requests 等模塊來實現(xiàn)。 并行編程是一種利用多個處理器/內(nèi)核/線程來同時執(zhí)行代碼的編程方式。它可以解決以下幾個問題: 提升程序的性能 在多任務或

    2024年02月07日
    瀏覽(23)
  • 高性能計算實驗——矩陣乘法基于MPI的并行實現(xiàn)及優(yōu)化

    高性能計算實驗——矩陣乘法基于MPI的并行實現(xiàn)及優(yōu)化

    熟練掌握MPI編程方法,并將通用矩陣乘法轉(zhuǎn)為MPI并行實現(xiàn),進一步加深MPI的使用與理解。 進一步熟悉MPI矩陣乘法的實現(xiàn),學習MPI點對點通信與集合通信的異同點和各自的優(yōu)缺點,學會比較二者的性能以及各自使用的情形。 學習如何將自己編寫的代碼改造為標準庫函數(shù),供其

    2024年02月03日
    瀏覽(31)
  • 為什么需要多語言并行機器翻譯?

    為什么需要多語言并行機器翻譯?

    隨著全球化的加速和不同語言之間的交流需求不斷增長,多語言機器翻譯(Multilingual Parallel Machine Translation)成為一個備受關(guān)注的領域。傳統(tǒng)上,機器翻譯系統(tǒng)主要集中于一對特定語言之間的翻譯,但這種單一語言對的模式在面對多語言環(huán)境時存在一些挑戰(zhàn)。因此,多語言并

    2024年02月12日
    瀏覽(28)
  • 為什么串行接口速率比并行接口快?

    為什么串行接口速率比并行接口快?

    串行接口的速率會比并行快,可以從下面四個方面考慮: ①高速串口不需要時鐘信號來同步數(shù)據(jù)流,也就沒有時鐘周期性的邊沿,頻譜不會集中,所以噪聲干擾少很多。 以PCIE和SATA為例,時鐘信息通過8b/10b編碼已經(jīng)集成在數(shù)據(jù)流里面,數(shù)據(jù)本身經(jīng)過加擾,絕對不可能有多于

    2024年02月07日
    瀏覽(30)
  • python一點通: 并行技術(shù)有幾種? thread和process有什么區(qū)別

    在Python中,并行性是一種技術(shù),允許程序同時執(zhí)行多個任務,從而提高整體性能。Python提供了幾種實現(xiàn)并行性的方法,包括線程(threading)、多進程(multiprocessing)以及concurrent.futures模塊。在本博文中,我們將探討線程和進程的概念,它們的區(qū)別以及何時選擇它們。我們還將

    2024年02月09日
    瀏覽(20)
  • Java并發(fā)(一)----進程、線程、并行、并發(fā)

    Java并發(fā)(一)----進程、線程、并行、并發(fā)

    進程 程序由指令和數(shù)據(jù)組成,但這些指令要運行,數(shù)據(jù)要讀寫,就必須將指令加載至 CPU,數(shù)據(jù)加載至內(nèi)存。在指令運行過程中還需要用到磁盤、網(wǎng)絡等設備。進程就是用來加載指令、管理內(nèi)存、管理 IO 的 當一個程序被運行,從磁盤加載這個程序的代碼至內(nèi)存,這時就開啟了

    2023年04月10日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包