2011-02-16 2 views
0

이상한 비트로 인해 머리에 문제가 복잡해 지는지 알 수 없습니다. 몇 가지 결과를 반환하는 쿼리와 for 루프를 통과하고 모든 반복 끝에 10 초 동안 sleep하는 함수를 반환합니다.쿼리 결과를 반복하고 각 함수에 함수를 호출합니다. sleep 명령이 포함되어 있습니다.

내가 수행해야하는 작업은 모든 결과에 대해이 함수를 호출하는 쿼리 결과를 루프하는 것입니다. 잠을자는 동안, for 루프가 첫 번째 쿼리를 완료했을 때 두 번째 쿼리 결과 만 처리한다고 생각합니다. 이게 말이 돼? 즉

while($row = mysql_fetch_array($query) 
{ 
    myFunctionThatCallsSleep6Times($row['Id']); 
} 

두 번째 결과는 첫 번째 결과가 완료된 후에 만 ​​호출되지만 동시에 각 결과에 대해이 함수를 시작해야합니다.

불명확하면 고맙습니다.

+0

"동시에"어떤 의미인지 명확히 설명하십시오. 함수를 실행하고 자고 싶지 않거나 실제 병렬 실행이 필요합니까? – rik

+0

글쎄, PHP는 멀티 스레딩 프로그래밍을 지원하지 않습니다. 잠자기 기능이없는 각 행을 처리하고 끝에 절전 모드를 호출 할 수 있습니다. 작은 데이터 세트의 경우 즉시 실행됩니다. –

+0

나는 병렬 실행을 추측합니다. 나는 각 기능이 필요합니다. 하지만 모든 쿼리 결과에 대해 병렬로 호출 할 함수가 필요합니다. – webnoob

답변

0

해결되었습니다. 쿼리가 sleep 명령을 포함하는 for 루프 내에서 수행되도록 코드를 재구성했습니다. 그래서 그것은 수면마다 모든 결과를 반복합니다.

관련 문제