중화사전망 - 서예자전 - 파이썬 높은 동시성을 해결하는 방법
파이썬 높은 동시성을 해결하는 방법
높은 동시성 솔루션:
1, 대기열, 버퍼
하나의 창만 있다고 가정하면 식당에 몰려드는 사람들에게는 줄을 서서 음식을 찾는 것이 더 좋은 방법이다.
따라서 큐링은 동시성을 해결하는 자연스러운 방법입니다.
줄을 서는 것은 사람을 줄을 서고, 선진하고, 자원 활용 문제를 해결하는 것이다.
대기열은 실제로 버퍼, 버퍼입니다.
여학생이 우선권을 가지고 있다고 가정하면, 이 팀에서 먼저 여학생을 골라 먼저 요리를 하는 것이 우선권 대열이다.
예를 들어 대기열 모듈의 클래스 queue, LifoQueue 및 PriorityQueue (작은 상단 힙 구현) 가 있습니다.
2. 그것을 위해 분투하다
창문을 하나만 열면 혼란이 생길 수 있는데, 바로 비집고 들어가는 사람이 그를 위해 요리를 하는 것이다.
창문으로 비집고 들어간 사람은 음식이 떠날 때까지 창문을 점거했다.
다른 사람들은 계속 경쟁하고, 한 사람이 창을 차지하며, 잠긴 창으로 간주될 수 있으며, 창은 다른 사람에게 서비스를 제공할 수 없습니다.
이것은 잠금 장치입니다.
자원을 빼앗은 사람은 누구나 잠기고, 독점 자물쇠를 차지하고, 다른 사람은 기다릴 수밖에 없다.
경합도 높은 동시성의 해결책이지만, 누군가가 오랫동안 빼앗지 못할 수도 있기 때문에 반드시 좋은 것은 아니다.
3. 사전 처리
줄이 길면 모든 사람이 음식을 얻기 위해 오랜 시간을 기다려야 하기 때문이다. 먹을 음식이 없기 때문에 지금 해야 하기 때문이다. 그들은 밥을 먹지 않고 떠나지 않을 것이고, 창문을 잠그지 않을 것이다.
식당은 대부분의 사람들이 좋아하는 음식을 미리 집계하고, 좋아하는 핫요리의 80% 를 미리 준비하여 공급을 보장하고, 지금은 20% 냉문 요리를 할 수 있다.
이렇게 하면 대부분의 사람들은 창문을 잠궈도 음식을 빨리 들이받고 창문을 빨리 놓는다.
사용자에게 필요한 데이터를 미리 로드하는 아이디어, 사전 처리 아이디어, 공용 캐시입니다.
파이썬에 대한 자세한 내용은 파이썬 독학망에 주목해 주세요! !