큐에서 이 문제를 해결할 수 있습니다. 모든 입력 이벤트가 들어올 때 큐에 대기할 수 있습니다. 이렇게 하면 입력 이벤트가 둘 사이에 시간이 거의 걸리지 않으면 모두 저장되고 처리가 가능해지면 문제가 되지 않습니다. 이동을 처리할 때 대기열을 해제할 수 있습니다. 팁: 대기열은 컴퓨터 과학에서 가장 널리 사용되는 데이터 구조 중 하나입니다. FIFO(선차 외식) 데이터 구조입니다. 학습 대기열에 대한 훌륭한 기사가 있습니다. 나머지 코드는 Queue 예제와 동일하므로 모든 것을 한데 모아 서 알아낼 수 있습니다: 스택 및 큐에 대한 실제 사용 사례가 많이 있으며 이를 이해하면 쉽고 효과적인 mann에서 많은 데이터 저장소 문제를 해결할 수 있습니다. 어. 큐는 프로그래밍에도 광범위하게 사용됩니다. 스트리트 파이터 또는 슈퍼 스매시 형제와 같은 게임을 생각. 이러한 게임의 플레이어는 버튼의 조합을 눌러 특별한 움직임을 수행 할 수 있습니다. 이러한 단추 조합은 큐에 저장할 수 있습니다.

파이썬이 제공하는 deque 라이브러리 및 기타 유형의 컬렉션에 대해 자세히 알아보려면 파이썬의 컬렉션 모듈 소개 기사를 참조하십시오. 큐의 가장 중요한 점은 스레딩과 잘 작동한다는 것입니다. 실제로 스레딩에서 큐를 사용할 수 있는 방법은 목록을 사용할 수 없습니다. 그래서 나는 심지어 그들을 여기에 데려 오는 것을 귀찮게하고 있습니다. 스레드: ConsumerThread-1 시작 은 큐에서 항목을 가져옵니다 [현재 크기 = 2] 시간에 = 22:22:50 스레드: 소비자 스레드-0 큐에서 프로세스 항목을 완료 [현재 크기 = 2] 시간에 = 22:22:50 큐가 시각적으로 작동하는 방식에몇 가지 차이점이 있습니다. 먼저 최대 크기를 큐에 설정했는데 여기서 0은 무한을 의미합니다. 그것은 꽤 바보이지만 어떻게 든 유용하다고 확신합니다. 30초가 걸리는 do_stuff()의 각 실행에 대해 이전에 제공한 예를 기억하십니까? 그리고 나는 그것을 실행했다 때문에 20 시간 10 분 걸릴 것? 이제 20 개의 다른 스레드를 실행할 수 있으며 전체 프로그램은 10 분이 아닌 약 30 초 안에 수행됩니다. 분명히 결과 다를 수 있습니다., 하지만 그것은 확실히 빠른. 다음은 파이썬 우선 순위 큐 예제 프로그램에서 생성된 출력입니다. 위에서 설명한 방법 외에도 큐 시작 시 요소를 반환할 수 있는 메서드를 추가하고 큐가 비어 있는지 확인할 수 있습니다.

스레드의 대상 함수가 정의되면 작업자 스레드를 시작할 수 있습니다. downloadEnclosures()는 큐에 반환할 것이 있을 때까지 문 URL = q.get()에서 차단되므로 큐에 무엇이든 있기 전에 스레드를 시작하는 것이 안전합니다. 참조: https://docs.python.org/3/library/asyncio-queue.html 파이썬 큐 모듈 PriorityQueue 함수가 동기화됩니다. 파이썬의 우선 순위 큐를 구현하는 또 다른 모듈 힙크가 있습니다. 큐에 대기된 작업이 완료될 때까지 기다리는 방법의 예: 출력에서 큐가 비어 있을 때 생산자가 큐에 항목을 넣을 때까지 소비자가 대기하는 것을 볼 수 있습니다. 큐가 가득 차면 생산자는 일부 항목을 큐에서 가져오고 소비한 다음 task_done() 메서드가 호출될 때까지 기다려야 합니다. 데이터가 도착한 방식으로 데이터를 처리하려는 경우 큐를 사용하는 것이 가장 좋습니다. 큐는 첫 번째 아웃 데이터 구조에서 첫 번째 개념입니다.