Song song foreach nodejs

Video này hướng dẫn chi tiết bộ xử lý MuleSoft Parallel ForEach và so sánh nó với bộ xử lý ForEach

qua

Jitendra Bafna

CỐT LÕI ·

Tháng 8. 10, 20 · Hướng dẫn

Giống

Nhận xét

Tiết kiệm

tiếng riu ríu

Chia sẻ

15. 51K Lượt xem

Tham gia cộng đồng DZone và có được trải nghiệm thành viên đầy đủ

Tham gia miễn phí

Giới thiệu

Parallel ForEach cho phép bạn xử lý bộ sưu tập thư bằng cách chia bộ sưu tập thành các phần được xử lý đồng thời theo các tuyến riêng biệt. Khi tất cả các tin nhắn đã được xử lý, kết quả sẽ được tổng hợp theo thứ tự như khi chúng được phân tách trước đó và các luồng tiếp tục

Thuộc tính

Sự miêu tả

Bộ sưu tập (bộ sưu tập)

Chỉ định biểu thức xác định tập hợp các phần sẽ được xử lý song song. Theo mặc định, nó sử dụng tải trọng đến

Bộ sưu tập Biểu hiện (bộ sưu tập)

Một biểu thức trả về một tập hợp. Theo mặc định, tải trọng được lấy làm bộ sưu tập để phân chia

Hết giờ (hết giờ)

Chỉ định thời gian chờ cho mỗi tuyến đường song song. Theo mặc định, không có thời gian chờ

Đồng thời tối đa (maxConcurrency)

Chỉ định mức song song tối đa cho bộ định tuyến sử dụng. Theo mặc định, tất cả các tuyến chạy song song

Vòng lặp foreach() so với Luồng foreach() so với Luồng song song foreach()

Cải thiện bài viết

Lưu bài viết

Thích bài viết

  • Độ khó. Trung bình
  • Cập nhật lần cuối. 22 tháng 11 năm 2022

  • Đọc
  • Bàn luận
  • khóa học
  • Luyện tập
  • Băng hình
  • Cải thiện bài viết

    Lưu bài viết

    vòng lặp foreach()

    • Toán tử Lambda không được sử dụng. vòng lặp foreach trong Java không sử dụng bất kỳ thao tác lambda nào và do đó, các thao tác có thể được áp dụng cho bất kỳ giá trị nào bên ngoài danh sách mà chúng ta đang sử dụng để lặp lại trong vòng lặp foreach. Vòng lặp foreach liên quan đến việc lặp lại bộ sưu tập hoặc mảng bằng cách lưu trữ từng phần tử của danh sách trên một biến cục bộ và thực hiện bất kỳ chức năng nào mà chúng ta muốn

    Java




    public class GFG {

     

        public

    GeeksForGeeks
    1
    GeeksForGeeks
    2
    GeeksForGeeks
    3

        

    GeeksForGeeks
    5

    GeeksForGeeks
    6_______0_______7
    GeeksForGeeks
    8_______0_______9_______8_______0
    GeeksForGeeks
    9
    For
    2
    For
    3

    GeeksForGeeks
    6_______8_______5
    For
    6
    For
    7_______8_______8

     

    GeeksForGeeks
    6_______18_______1
    null
    2
    GeeksForGeeks
    9_______18_______4
    GeeksForGeeks
    9
    null
    2
    For
    3

     

    GeeksForGeeks
    6_______26_______0
    ForGeeksGeeks
    1

    ForGeeksGeeks
    2______26_______3

    GeeksForGeeks
    6_______26_______5

        

    ForGeeksGeeks
    5

    ForGeeksGeeks
    5

    đầu ra.

    GeeksForGeeks

    • Ở đây, các hoạt động đếm thậm chí có thể là một biến bên ngoài vòng lặp vì nó nằm trong phạm vi của vòng lặp foreach
       
    • Nó có thể được sử dụng cho tất cả các bộ sưu tập và mảng. Nó có thể được sử dụng để lặp lại tất cả các bộ sưu tập và mảng trong Java

    Java




    public class GFG {

     

        public

    GeeksForGeeks
    1
    GeeksForGeeks
    2
    GeeksForGeeks
    3

    GeeksForGeeks
    6_______285_______9 class0

        

    GeeksForGeeks
    5

     

    GeeksForGeeks
    6_______0_______7
    GeeksForGeeks
    8_______0_______9_______8_______0
    GeeksForGeeks
    9
    For
    2
    For
    3

    GeeksForGeeks
    6_______8_______5
    For
    6
    For
    7_______8_______8

     

    GeeksForGeeks
    6_______18_______1
    null
    2
    GeeksForGeeks
    9_______18_______4
    GeeksForGeeks
    9
    null
    2
    For
    3

     

    GeeksForGeeks
    6_______26_______0
    ForGeeksGeeks
    1

    ForGeeksGeeks
    2______26_______3

    GeeksForGeeks
    6_______26_______5

        

    ForGeeksGeeks
    5

    ForGeeksGeeks
    5

    đầu ra.

    GeeksForGeeks

    • Các câu lệnh return hoạt động trong vòng lặp. Hàm có thể trả về giá trị tại bất kỳ thời điểm nào trong vòng lặp. Ví dụ: nếu chúng ta chỉ muốn in 2 giá trị đầu tiên của bất kỳ tập hợp hoặc mảng nào và sau đó chúng ta muốn trả về bất kỳ giá trị nào, điều đó có thể được thực hiện trong vòng lặp foreach trong Java. Đoạn mã dưới đây là để in phần tử thứ 2 của một mảng

    Java




    public class GFG {

     

        public

    GeeksForGeeks
    1
    GeeksForGeeks
    04

        

    GeeksForGeeks
    5

    GeeksForGeeks
    6_______8_______5
    For
    6
    For
    7_______8_______8

    GeeksForGeeks
    6_______26_______0
    GeeksForGeeks
    14

    ForGeeksGeeks
    2_______0_______16
    GeeksForGeeks
    17
    GeeksForGeeks
    18
    GeeksForGeeks
    19

    GeeksForGeeks
    20_______0_______21
    GeeksForGeeks
    22

    ForGeeksGeeks
    2______0_______24

    GeeksForGeeks
    6_______26_______5

    GeeksForGeeks
    6_______0_______21
    GeeksForGeeks
    29
    For
    8

        

    ForGeeksGeeks
    5

     

        public

    GeeksForGeeks
    1
    GeeksForGeeks
    2
    GeeksForGeeks
    3

    GeeksForGeeks
    6_______285_______9 class0

        

    GeeksForGeeks
    5

     

    GeeksForGeeks
    6_______18_______1
    null
    2
    GeeksForGeeks
    9_______18_______4
    GeeksForGeeks
    9
    null
    2
    For
    3

    GeeksForGeeks
    6_______0_______54

    GeeksForGeeks
    6_______0_______56

        

    ForGeeksGeeks
    5

    ForGeeksGeeks
    5

    đầu ra. ________số 8_______

    suối(). cho mỗi()

    • Toán tử Lambda được sử dụng. Trong luồng(). forEach(), lambdas được sử dụng và do đó không được phép thực hiện các thao tác trên các biến bên ngoài vòng lặp. Chỉ các hoạt động trên các bộ sưu tập có liên quan là có thể. Trong đó, chúng ta có thể thực hiện các thao tác trên Bộ sưu tập bằng mã dòng đơn giúp viết mã dễ dàng và đơn giản

    Java




    GeeksForGeeks
    60
    GeeksForGeeks
    61

    public class GFG {

     

        public

    GeeksForGeeks
    1
    GeeksForGeeks
    2
    GeeksForGeeks
    3public9 class0

        

    GeeksForGeeks
    5

     

    GeeksForGeeks
    6_______0_______77
    GeeksForGeeks
    78
    GeeksForGeeks
    79

    GeeksForGeeks
    6_______8_______5
    For
    6
    For
    7_______8_______8

    GeeksForGeeks
    6_______0_______86
    null
    2
    GeeksForGeeks
    88

    GeeksForGeeks
    6_______0_______86
    null
    4
    GeeksForGeeks
    88

    GeeksForGeeks
    6_______0_______86
    null
    2
    GeeksForGeeks
    88

    GeeksForGeeks
    6_______0_______98

     

    ForGeeksGeeks
    2______8_______01

    ForGeeksGeeks
    2______0_______24

     

    ForGeeksGeeks
    2____8_______06

    ForGeeksGeeks
    2______8_______08

    GeeksForGeeks
    6_______8_______10

        

    ForGeeksGeeks
    5

    ForGeeksGeeks
    5

    • Ghi chú. Hoạt động “đếm ++” sẽ gây ra lỗi vì hoạt động lambda không cho phép bất kỳ hoạt động biến bên ngoài nào trong chính nó.  
       
    • Chỉ được sử dụng để lặp lại các bộ sưu tập. Dòng chảy(). forEach() chỉ được sử dụng để truy cập các bộ sưu tập như set và list. Nó cũng có thể được sử dụng để truy cập các mảng

    Java




    GeeksForGeeks
    60
    For
    15

    public class GFG {

     

        public

    GeeksForGeeks
    1
    GeeksForGeeks
    2
    GeeksForGeeks
    3

    GeeksForGeeks
    6_______285_______9 class0

        

    GeeksForGeeks
    5

     

    GeeksForGeeks
    6_______18_______1
    null
    2
    GeeksForGeeks
    9_______8_______35
    GeeksForGeeks
    9
    null
    2
    For
    3

     

    GeeksForGeeks
    6_______8_______41

    GeeksForGeeks
    6
    For
    43

    GeeksForGeeks
    6_______8_______45

    ForGeeksGeeks
    2______8_______47

    ForGeeksGeeks
    2______8_______49

    GeeksForGeeks
    20_______8_______08

    ForGeeksGeeks
    2______8_______10

        

    ForGeeksGeeks
    5

    ForGeeksGeeks
    5

    • Các câu lệnh trả về không hoạt động trong vòng lặp này nhưng các lệnh gọi hàm rất dễ gọi.  
      Câu lệnh return trong vòng lặp không hoạt động. Không thể thực hiện chức năng tương tự để lấy phần tử thứ 2 trong cùng một phương thức forEach()

    Java




    GeeksForGeeks
    60
    GeeksForGeeks
    61

     

    public class GFG {

     

        

    GeeksForGeeks
    1
    For
    66

        

    GeeksForGeeks
    5

    GeeksForGeeks
    6
    For
    70

    ForGeeksGeeks
    2______8_______47

    ForGeeksGeeks
    2______8_______74

    GeeksForGeeks
    20_______8_______76

    For
    77
    For
    41

    For
    77
    For
    80

     

    For
    77
    For
    83

     

    GeeksForGeeks
    20_______8_______10

    GeeksForGeeks
    6_______0_______21
    For
    89
    For
    8

        

    ForGeeksGeeks
    5

     

        public

    GeeksForGeeks
    1
    GeeksForGeeks
    2
    GeeksForGeeks
    3

    GeeksForGeeks
    6_______285_______9 class0

        

    GeeksForGeeks
    5

     

    GeeksForGeeks
    6_______0_______77
    GeeksForGeeks
    78
    GeeksForGeeks
    79

    GeeksForGeeks
    6_______0_______86
    null
    2
    GeeksForGeeks
    88

    GeeksForGeeks
    6_______0_______86
    null
    4
    GeeksForGeeks
    88

    GeeksForGeeks
    6_______0_______86
    null
    2
    GeeksForGeeks
    88

    GeeksForGeeks
    6
    null
    22

    GeeksForGeeks
    6
    null
    24

        

    ForGeeksGeeks
    5

    ForGeeksGeeks
    5

    đầu ra.

    null

    foreach song song()

    • Hoạt động trên khái niệm đa luồng. Sự khác biệt duy nhất giữa stream(). forEach() và parallel foreach() là tính năng đa luồng được cung cấp trong forEach() song song. Đây là cách nhanh hơn foreach() và stream. cho mỗi(). Thích luồng(). forEach() nó cũng sử dụng ký hiệu lambda để thực hiện các chức năng.  
      Ví dụ cung cấp bản chất đa luồng của nó được đưa ra như sau
      Rõ ràng ngụ ý rằng đầu ra sẽ không bao giờ theo cùng một thứ tự để in các chuỗi do tính chất đa luồng của ParallelStream

    Java




    GeeksForGeeks
    60
    GeeksForGeeks
    61

     

    public class GFG {

     

        public

    GeeksForGeeks
    1
    GeeksForGeeks
    2
    GeeksForGeeks
    3

    GeeksForGeeks
    6_______285_______9 class0

        

    GeeksForGeeks
    5

     

    GeeksForGeeks
    6
    null
    47

    ForGeeksGeeks
    2_______18_______49
    GeeksForGeeks
    78
    GeeksForGeeks
    79

    GeeksForGeeks
    6_______0_______86
    null
    2
    GeeksForGeeks
    88

    GeeksForGeeks
    6_______0_______86
    null
    4
    GeeksForGeeks
    88

    GeeksForGeeks
    6_______0_______86
    null
    2
    GeeksForGeeks
    88

     

    GeeksForGeeks
    6_______8_______45

    ForGeeksGeeks
    2_______18_______68

    ForGeeksGeeks
    2______8_______74

    GeeksForGeeks
    20_______8_______76

    For
    77
    For
    08

    GeeksForGeeks
    20_______8_______10

        

    ForGeeksGeeks
    5

    ForGeeksGeeks
    5

    đầu ra.

    ForGeeksGeeks

     

    sự khác biệt trong bảng

    vòng lặp foreach(). foreach() loopparallelStream(). vòng lặp foreach() Toán tử Lambda không được sử dụng Toán tử Lambda được sử dụng Toán tử Lambda được sử dụng Có thể được sử dụng để truy cập mảng và bộ sưu tập Chỉ có thể truy cập bộ sưu tập Chỉ có thể truy cập bộ sưu tập Câu lệnh trả về hoặc điều khiển hoạt động trong vòng lặpCâu lệnh trả về hoặc điều khiển không hoạt động trong vòng lặpCâu lệnh trả về hoặc điều khiển

    Ghi chú cá nhân của tôi arrow_drop_up

    Tiết kiệm

    Vui lòng Đăng nhập để nhận xét.

    Javascript ForEach có chạy song song không?

    Vì forEach không đợi giải quyết từng lời hứa nên tất cả các giải thưởng được trao song song , không nối tiếp (từng giải một).

    Làm cách nào để sử dụng song song ForEach trong C#?

    Song song. ForEach giống như vòng lặp foreach trong C#, ngoại trừ vòng lặp foreach chạy trên một luồng đơn và quá trình xử lý diễn ra tuần tự, trong khi Parallel. Vòng lặp ForEach chạy trên nhiều luồng và quá trình xử lý diễn ra song song .