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ẫnGiố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ả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
GeeksForGeeks1
GeeksForGeeks2
GeeksForGeeks3
GeeksForGeeks5
GeeksForGeeks6_______0_______7
GeeksForGeeks8_______0_______9_______8_______0
GeeksForGeeks9
For2
For3
GeeksForGeeks6_______8_______5
For6
For7_______8_______8
GeeksForGeeks6_______18_______1
null2
GeeksForGeeks9_______18_______4
GeeksForGeeks9
null2
For3
GeeksForGeeks6_______26_______0
ForGeeksGeeks1
ForGeeksGeeks2______26_______3
GeeksForGeeks6_______26_______5
ForGeeksGeeks5
ForGeeksGeeks5
đầ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
GeeksForGeeks1
GeeksForGeeks2
GeeksForGeeks3
GeeksForGeeks6_______285_______9
class
0
GeeksForGeeks5
GeeksForGeeks6_______0_______7
GeeksForGeeks8_______0_______9_______8_______0
GeeksForGeeks9
For2
For3
GeeksForGeeks6_______8_______5
For6
For7_______8_______8
GeeksForGeeks6_______18_______1
null2
GeeksForGeeks9_______18_______4
GeeksForGeeks9
null2
For3
GeeksForGeeks6_______26_______0
ForGeeksGeeks1
ForGeeksGeeks2______26_______3
GeeksForGeeks6_______26_______5
ForGeeksGeeks5
ForGeeksGeeks5
đầ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
GeeksForGeeks1
GeeksForGeeks04
GeeksForGeeks5
GeeksForGeeks6_______8_______5
For6
For7_______8_______8
GeeksForGeeks6_______26_______0
GeeksForGeeks14
ForGeeksGeeks2_______0_______16
GeeksForGeeks17
GeeksForGeeks18
GeeksForGeeks19
GeeksForGeeks20_______0_______21
GeeksForGeeks22
ForGeeksGeeks2______0_______24
GeeksForGeeks6_______26_______5
GeeksForGeeks6_______0_______21
GeeksForGeeks29
For8
ForGeeksGeeks5
public
GeeksForGeeks1
GeeksForGeeks2
GeeksForGeeks3
GeeksForGeeks6_______285_______9
class
0
GeeksForGeeks5
GeeksForGeeks6_______18_______1
null2
GeeksForGeeks9_______18_______4
GeeksForGeeks9
null2
For3
GeeksForGeeks6_______0_______54
GeeksForGeeks6_______0_______56
ForGeeksGeeks5
ForGeeksGeeks5
đầ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
GeeksForGeeks60
GeeksForGeeks61
public
class
GFG {
public
GeeksForGeeks1
GeeksForGeeks2
GeeksForGeeks3
public
9 class
0
GeeksForGeeks5
GeeksForGeeks6_______0_______77
GeeksForGeeks78
GeeksForGeeks79
GeeksForGeeks6_______8_______5
For6
For7_______8_______8
GeeksForGeeks6_______0_______86
null2
GeeksForGeeks88
GeeksForGeeks6_______0_______86
null4
GeeksForGeeks88
GeeksForGeeks6_______0_______86
null2
GeeksForGeeks88
GeeksForGeeks6_______0_______98
ForGeeksGeeks2______8_______01
ForGeeksGeeks2______0_______24
ForGeeksGeeks2____8_______06
ForGeeksGeeks2______8_______08
GeeksForGeeks6_______8_______10
ForGeeksGeeks5
ForGeeksGeeks5
- 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
GeeksForGeeks60
For15
public
class
GFG {
public
GeeksForGeeks1
GeeksForGeeks2
GeeksForGeeks3
GeeksForGeeks6_______285_______9
class
0
GeeksForGeeks5
GeeksForGeeks6_______18_______1
null2
GeeksForGeeks9_______8_______35
GeeksForGeeks9
null2
For3
GeeksForGeeks6_______8_______41
GeeksForGeeks6
For43
GeeksForGeeks6_______8_______45
ForGeeksGeeks2______8_______47
ForGeeksGeeks2______8_______49
GeeksForGeeks20_______8_______08
ForGeeksGeeks2______8_______10
ForGeeksGeeks5
ForGeeksGeeks5
- 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
GeeksForGeeks60
GeeksForGeeks61
public
class
GFG {
GeeksForGeeks1
For66
GeeksForGeeks5
GeeksForGeeks6
For70
ForGeeksGeeks2______8_______47
ForGeeksGeeks2______8_______74
GeeksForGeeks20_______8_______76
For77
For41
For77
For80
For77
For83
GeeksForGeeks20_______8_______10
GeeksForGeeks6_______0_______21
For89
For8
ForGeeksGeeks5
public
GeeksForGeeks1
GeeksForGeeks2
GeeksForGeeks3
GeeksForGeeks6_______285_______9
class
0
GeeksForGeeks5
GeeksForGeeks6_______0_______77
GeeksForGeeks78
GeeksForGeeks79
GeeksForGeeks6_______0_______86
null2
GeeksForGeeks88
GeeksForGeeks6_______0_______86
null4
GeeksForGeeks88
GeeksForGeeks6_______0_______86
null2
GeeksForGeeks88
GeeksForGeeks6
null22
GeeksForGeeks6
null24
ForGeeksGeeks5
ForGeeksGeeks5
đầ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
GeeksForGeeks60
GeeksForGeeks61
public
class
GFG {
public
GeeksForGeeks1
GeeksForGeeks2
GeeksForGeeks3
GeeksForGeeks6_______285_______9
class
0
GeeksForGeeks5
GeeksForGeeks6
null47
ForGeeksGeeks2_______18_______49
GeeksForGeeks78
GeeksForGeeks79
GeeksForGeeks6_______0_______86
null2
GeeksForGeeks88
GeeksForGeeks6_______0_______86
null4
GeeksForGeeks88
GeeksForGeeks6_______0_______86
null2
GeeksForGeeks88
GeeksForGeeks6_______8_______45
ForGeeksGeeks2_______18_______68
ForGeeksGeeks2______8_______74
GeeksForGeeks20_______8_______76
For77
For08
GeeksForGeeks20_______8_______10
ForGeeksGeeks5
ForGeeksGeeks5
đầ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ểnGhi chú cá nhân của tôi arrow_drop_up
Tiết kiệm