현재 위치: > 최신 기사 목록> PHP 배열 페이징에서 동시 요청을 처리하는 방법은 무엇입니까? 솔루션 및 예

PHP 배열 페이징에서 동시 요청을 처리하는 방법은 무엇입니까? 솔루션 및 예

M66 2025-07-11

PHP 어레이 페이징의 동시 요청 문제

동시 요청은 여러 사용자 또는 브라우저의 요청을 동시에 나타냅니다. PHP 배열 페이징을 적용 할 때 동시 요청을 효과적으로 처리하고 데이터 불일치를 방지하는 방법이 핵심 문제입니다.

이중 잠금 장치 : 솔루션

더블 잠금은 일반적으로 사용되는 동시성 제어 기술로, 한 스레드만이 공유 리소스에 동시에 액세스 할 수 있도록합니다. PHP 배열 페이징의 경우, 이중 잠금을 사용하여 페이징시 여러 사용자 간의 데이터 충돌을 방지 할 수 있습니다. 다음은 이중 잠금을 사용한 페이징 처리의 예입니다.

 
$currentPage = 1; // 현재 페이지
$pageSize = 10; // 페이지 당 크기
$array = []; // 페이징이 될 배열

// 이중 잠금
function getPaginatedData() {
    global $currentPage, $pageSize, $array;

    $lock = new Mutex();

    $lock->lock(); // 자물쇠를 얻으십시오

    $totalRecords = count($array);
    $totalPages = ceil($totalRecords / $pageSize);

    if ($currentPage > $totalPages) {
        $currentPage = $totalPages;
    }

    $offset = ($currentPage - 1) * $pageSize;
    $paginatedArray = array_slice($array, $offset, $pageSize);

    $lock->unlock(); // 잠금을 해제하십시오

    return $paginatedArray;
}

실제 사례

100 개의 요소 배열이 있고 페이지 당 10 개의 요소가 표시되기를 원합니다. 두 사용자가 3 페이지의 동시에 데이터를 요청하면 잠금되지 않은 경우 데이터 충돌 또는 페이징 불일치가 발생할 수 있습니다. 이중 잠금 기술을 통해 동시에 한 명의 사용자 만 PAGED 데이터에 액세스하여 데이터의 일관성을 보장 할 수 있습니다.

요약

Double Locking은 데이터 일관성을 보장하기 위해 PHP 어레이 페이징의 동시 요청을 처리 할 수있는 효과적인 동시성 제어 방법입니다. 여러 사용자가 동시에 동일한 데이터에 액세스하면 잠금 메커니즘은 효과적으로 리소스 경쟁을 방지하고 페이징 데이터의 정확성을 보장 할 수 있습니다.