반응형
Bash의 멀티스레딩
저는 제 셸 스크립트에 멀티스레딩 기능을 도입하려고 합니다.
함수를 호출하는 스크립트가 있습니다.read_cfg()
다른 주장으로이러한 각 함수 호출은 독립적입니다.
스크립트가 아닌 이러한 함수 호출을 병렬로 인스턴스화할 수 있습니까?어떻게 하면 그것을 달성할 수 있을까요?
네, 그냥 추가하세요.&
명령 뒤:
read_cfg cfgA &
read_cfg cfgB &
read_cfg cfgC &
wait
그러면 모든 작업이 동시에 백그라운드에서 실행됩니다.선택 사항wait
그러면 명령이 모든 작업이 완료될 때까지 기다립니다.
각 명령은 별도의 프로세스로 실행되므로 기술적으로 "멀티스레딩"은 아니지만 문제를 해결할 수 있다고 생각합니다.
스크립트의 여러 복사본을 병렬로 실행할 수 있으며, 각 복사본은 서로 다른 입력 데이터에 대해 실행할 수 있습니다(예: 4개의 코어에서 모든 *.cfg 파일을 처리하는 경우).
ls *.cfg | xargs -P 4 -n 1 read_cfg.sh
read_cfg.sh 스크립트는 매개 변수 하나만 사용합니다(-n에 의해 적용됨).
Bash 작업 제어에는 여러 스레드가 아닌 여러 프로세스가 포함됩니다.
를 사용하여 백그라운드에서 명령을 실행할 수 있습니다.&
접미사
를 사용하여 백그라운드 명령이 완료될 때까지 기다릴 수 있습니다.wait
지휘권
여러 명령을 다음과 같이 구분하여 병렬로 실행할 수 있습니다.|
이것은 또한 동기화 메커니즘을 제공합니다, 왼쪽에 있는 명령의 stdout.|
오른쪽에 있는 명령의 stdin에 연결되어 있습니다.
언급URL : https://stackoverflow.com/questions/2425870/multithreading-in-bash
반응형
'source' 카테고리의 다른 글
목록의 각 사전에 요소 추가(목록 이해) (0) | 2023.05.02 |
---|---|
두 범위 함수 결과 연결 (0) | 2023.05.02 |
MongoDB에서 날짜를 저장하는 가장 좋은 방법은 무엇입니까? (0) | 2023.05.02 |
유형 또는 네임스페이스 이름이 없습니다. (0) | 2023.05.02 |
Postgres에서 빠른 임의 행 선택 (0) | 2023.05.02 |