목록병렬프로그래밍 (4)
스택큐힙리스트
더 자세히 말하면, 우리가 처음으로 /increment 엔드포인트를 호출할 때 두 작업자 중 하나만이 요청에 응답하는 것을 볼 수 있습니다 (이게 맞습니다. 두 작업자가 같은 작업을 수행하는 것은 원하지 않습니다). 그러나 두 개의 별도한 meta 객체가 있기 때문에 두 개 중 하나만 증가하게 됩니다. /report 엔드포인트를 호출할 때, 어떤 작업자가 요청에 응답하느냐에 따라 1 또는 0이 반환됩니다. 따라서 문제는, 작업자들이 어떻게 동일한 객체를 공유하고 작업할 수 있는지입니다. 부가적인 질문으로, 위에서 언급한 문제는 /reset 엔드포인트에도 영향을 미칩니다. 이 엔드포인트를 호출하면 작업자 중 하나만 객체를 재설정합니다. 모든 작업자가 엔드포인트 호출에 응답하도록 강제할 방법이 있는지 궁금합..
동시성과 병렬성의 차이점은 무엇인가요?답변 1동시성은 두 개 이상의 작업이 겹치는 시간 동안 시작되고 실행되며 완료될 수 있는 상황입니다. 이는 두 작업 모두 동시에 실행되는 것을 의미하지는 않습니다. 예를 들어, 단일 코어 기계에서 멀티태스킹입니다. 병렬성은 작업이 실제로 동시에 실행되는 상황으로, 예를 들어, 다중 코어 프로세서에서 실행됩니다. 선의 멀티스레드 프로그래밍 가이드를 인용하자면: 동시성: 적어도 두 개의 스레드가 진행 중인 상태입니다. 가상 병렬성의 한 형태로서 시간 분할을 포함할 수 있는 보다 일반화된 형태입니다. 병렬성: 적어도 두 개의 스레드가 동시에 실행 중인 상황입니다. 답변 2동시성(concurrency)과 병렬성(parallelism)은 컴퓨팅 분야에서 자주 사용되는 용어이지..
저는 파이썬 3.2.2에서 concurrent.futures 모듈을 사용하는 방법을 이해하려고 노력하고 있습니다. 문서에서 제공하는 예제들을 사용하며 연습을 하고 있습니다. 이해한 내용을 적용해보려 할 때, 제 자신의 예제들이 실패합니다. 누군가가 저를 도와주어 진행방향을 설정해주길 바랍니다! 동시에 그리고 비동기적으로 여러 프로세스를 실행할 수 있도록 설정하고 싶습니다. 제 프로세스는 아무 값도 반환하지 않습니다. 이를 시뮬레이션하기 위해 간단한 예제를 작성했습니다: import concurrent.futures fred = [1,2,3,4,5,6,7,8,9,10] def f(x): print(x * x) def main(): with concurrent.futures.ProcessPoolExecuto..
C++11은 표준화된 메모리 모델을 도입했지만, 이게 정확히 무엇을 의미하며, C++ 프로그래밍에 어떤 영향을 미칠까요?This article (Gavin Clarke 인용인 Herb Sutter)는 다음과 같이 말합니다.메모리 모델은 C++ 코드가 이제 컴파일러를 만든 사람과 플랫폼에 관계없이 호출할 수 있는 표준 라이브러리를 갖게 되었다는 것을 의미합니다. 서로 다른 스레드가 프로세서의 메모리와 대화하는 방식을 제어하는 표준 방법이 있습니다.여러 코어 간에 [코드]를 나누는 것에 대해 이야기할 때, 우리는 표준에서 메모리 모델에 대해 이야기하고 있습니다. 우리는 코드에서 사람들이 하는 가정을 깨뜨리지 않으면서 최적화할 것입니다, Sutter가 말했습니다.음, 저는 인터넷에서 이와 비슷한 단락들을 기억..