Tôi có một tập lệnh - một danh sách các lệnh tuyến tính - mất nhiều thời gian để chạy tuần tự. Tôi muốn tạo ra một kịch bản tiện ích (Perl, Bash hoặc khác có sẵn trên Cygwin) có thể đọc các lệnh từ bất kỳ kịch bản tuyến tính nào và đưa chúng vào một số lượng nhân viên song song có thể cấu hình được.Perl hoặc Bash threadpool script?
Vì vậy, nếu myscript
là
command1
command2
command3
tôi có thể chạy:
threadpool -n 2 myscript
Hai chủ đề sẽ được tạo ra, một bắt đầu với command1
và command2
khác. Cho dù chủ đề nào kết thúc công việc đầu tiên của nó trước tiên thì sẽ chạy command3
.
Trước khi đi sâu vào Perl (đã lâu rồi) Tôi nghĩ rằng tôi nên hỏi các chuyên gia nếu một thứ như thế này đã tồn tại. Tôi chắc rằng cần phải có một cái gì đó như thế này bởi vì nó sẽ vô cùng hữu ích cho cả việc khai thác các máy đa CPU và cho việc truyền mạng song song (wget
hoặc scp
). Tôi đoán tôi không biết cụm từ tìm kiếm phù hợp. Cảm ơn!
Làm thế nào về điều này? http://www.rootninja.com/use-multiple-processors-in-bash-by-running-commands-in-parallel/ – carlpett
@carlpett Có - bạn có câu trả lời trong đó - 'xargs -P' Cảm ơn bạn. – paperjam
Có liên quan cao: http://stackoverflow.com/questions/4539310/does-a-modified-command-invocation-toolwhich-dynamically-regulates-a-job-pool (xargs không hoạt động tốt với nhiều công cụ, ví dụ: giải nén) – daxim