1. gzyueqian
      13352868059

      Java培訓(xùn):Java 中的順序流與并行流是什么?

      更新時(shí)間: 2022-04-29 10:12:29來(lái)源: 粵嵌教育瀏覽量:7999

        Java 中的流是表示為數(shù)據(jù)管道的對(duì)象序列。它通常具有數(shù)據(jù)所在的源和傳輸?shù)哪康牡亍U?qǐng)注意,流不是存儲(chǔ)庫(kù);相反,它對(duì)數(shù)據(jù)源(例如數(shù)組或集合)進(jìn)行操作。段落中的中間位實(shí)際上稱(chēng)為流。想對(duì)Java 有更深入的了解,可以參加java培訓(xùn),在專(zhuān)業(yè)老師的指導(dǎo)下,你可以很快掌握java的更多特性。

        在傳輸過(guò)程中,流通常會(huì)經(jīng)歷一種或多種可能的轉(zhuǎn)換,例如過(guò)濾或排序,也可以是對(duì)數(shù)據(jù)進(jìn)行操作的任何其他過(guò)程。這通常根據(jù)程序員的需要將原始數(shù)據(jù)定制為不同的形式。因此,根據(jù)對(duì)其應(yīng)用的操作創(chuàng)建一個(gè)新流。例如,當(dāng)對(duì)流進(jìn)行排序時(shí),它會(huì)產(chǎn)生一個(gè)新流,該流會(huì)產(chǎn)生一個(gè)結(jié)果,然后再對(duì)其進(jìn)行排序。這意味著新數(shù)據(jù)是原始數(shù)據(jù)的轉(zhuǎn)換副本,而不是原始形式。

        順序流

        除非明確指定為并行,否則 Java 中的任何流操作都是按順序處理的。它們基本上是使用單個(gè)線程處理其管道的非并行流。即使底層系統(tǒng)可能支持并行執(zhí)行,順序流也永遠(yuǎn)不會(huì)利用多核系統(tǒng)。例如,當(dāng)我們應(yīng)用多線程處理流時(shí)會(huì)發(fā)生什么?即便如此,它一次只能在一個(gè)內(nèi)核上運(yùn)行。但是,除非明確固定到特定的核心,否則它可能會(huì)從一個(gè)核心跳到另一個(gè)核心。例如,四個(gè)不同線程與四個(gè)不同內(nèi)核的處理顯然是不同的,前者與后者不匹配。在單核環(huán)境中執(zhí)行多個(gè)線程是完全可能的,但并行處理完全是一種不同的類(lèi)型。除了在支持它的環(huán)境中執(zhí)行之外,還需要為并行編程設(shè)計(jì)一個(gè)程序。這就是并行編程是一個(gè)復(fù)雜領(lǐng)域的原因。在java培訓(xùn)中,培訓(xùn)課程不僅注重理論,更注重項(xiàng)目的實(shí)戰(zhàn)能力,能夠讓你快速適應(yīng)企業(yè)開(kāi)發(fā)的進(jìn)度,成為企業(yè)所需要的Java人才。

        


        并行流

        使用并行流的主要?jiǎng)訖C(jī)是使流處理成為并行編程的一部分,即使整個(gè)程序可能沒(méi)有并行化。并行流利用多核處理器,從而顯著提高性能。與任何并行編程不同,它們復(fù)雜且容易出錯(cuò)。但是,Java 流庫(kù)提供了以可靠的方式輕松完成此操作的能力。整個(gè)程序可能不會(huì)并行化。但至少處理流的部分可以并行化。從某種意義上說(shuō),它們實(shí)際上非常簡(jiǎn)單,我們可以調(diào)用一些方法,其余的都可以處理。有幾種方法可以做到這一點(diǎn)。一種這樣的方法是通過(guò)調(diào)用 Collection 定義的 parallelStream() 方法來(lái)獲取并行流。另一種方法是在順序流上調(diào)用 BaseStream 定義的 parallel() 方法。順序流由調(diào)用并行化。請(qǐng)注意,底層平臺(tái)必須支持并行編程,例如多核系統(tǒng)。否則,調(diào)用沒(méi)有意義。在這種情況下,流將按順序處理,即使我們已經(jīng)進(jìn)行了調(diào)用。如果調(diào)用是在已經(jīng)并行的流上進(jìn)行的,它什么也不做,只是簡(jiǎn)單地返回流。

        為了保證對(duì)流應(yīng)用并行處理的結(jié)果與通過(guò)順序處理得到的結(jié)果相同,并行流必須是無(wú)狀態(tài)的、無(wú)干擾的和關(guān)聯(lián)的。

        結(jié)論

        流 API 長(zhǎng)期以來(lái)一直是 Java 的一部分,但是添加并行處理的調(diào)整非常受歡迎,同時(shí)也是一個(gè)非常有趣的特性。尤其如此,因?yàn)楝F(xiàn)代機(jī)器是多核的,并且并行編程設(shè)計(jì)很復(fù)雜是一個(gè)恥辱。Java 提供的 API 提供了在具有順序執(zhí)行的整體設(shè)計(jì)的 Java 程序中加入一些并行編程調(diào)整的能力。這可能是此功能的最佳部分。通過(guò)java培訓(xùn)的學(xué)習(xí),你可以學(xué)到很多企業(yè)級(jí)項(xiàng)目經(jīng)驗(yàn)和技能,找到工作后,可以立馬上崗實(shí)操,大大提高開(kāi)發(fā)效率。


      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 中文字幕一二区二三 | 在线免费观看激情麻豆视频 | 尹人香蕉久久99天天拍第一页 | 网友久久更新新视频免费 | 五月天亚洲婷婷综合 | 色五月激情五月亚洲综合久久 |