TParallel.For()
có đối số được gọi là AStride
. Trong trường hợp của tôi AStride là 2:Ý nghĩa của AStride trong TParallel.For là gì?
TParallel.&For(2, 1, 10,
procedure(index: Integer)
begin
TThread.Queue(nil,
procedure
begin
memo1.Lines.Add(index.ToString());
end
);
end
);
Tôi không thể hiểu ý nghĩa kỹ thuật của "AStride" tại đây. Có AStride = 2
có nghĩa là chuỗi đầu tiên sẽ xử lý hai số liên tiếp trong phạm vi [1..10]
, luồng thứ hai sẽ xử lý các số liên tiếp tiếp theo, v.v ...?
** Tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi và tôi dịch "Stride" thành "bước dài" hoặc "tốc độ".
Tôi hy vọng thông số bạn đã mong đợi từ bước này sẽ được mô tả và đặt tên là bước lặp lại hoặc bước truy cập (nếu họ giới thiệu nó). Ngoài tò mò, họ có sử dụng API pool pool trên nền tảng Windows không? – TLama
@TLama Tôi nghi ngờ họ sẽ thêm một tham số như vậy vì nó dễ dàng cho lập trình viên để làm như vậy. Parallel.For triển khai khác làm việc ra "sải chân" mình nghĩ. Hồ bơi thread có nguồn gốc từ Delphi RTL. Vì vậy, không phải là hồ bơi hệ thống thread. –
Ngoài ra, sải chân là "tự điều chỉnh". I E. khi không có giá trị bắt đầu được cho nó tăng định kỳ. Tôi nghĩ, điều này được thực hiện để chống lại việc chia sẻ sai trong các vòng chạy dài. – iamjoosy