Thread 22

[스크랩] 멀티스레딩에 대한 간단한 설명

출처 : 위키백과http://ko.wikipedia.org/wiki/%EB%A9%80%ED%8B%B0%EC%8A%A4%EB%A0%88%EB%94%A9-------------------------------------장단점[편집]장점응답성 : 대화형 프로그램을 멀티스레드화하면, 프로그램의 일부분(스레드)이 중단되거나 긴 작업을 수행하더라도 프로그램의 수행이 계속되어, 사용자에 대한 응답성이 증가된다. 예를 들어, 멀티스레드가 적용된 웹 브라우저 프로그램에서 하나의 스레드가 이미지 파일을 로드하고 있는 동안, 다른 스레드에 사용자와의 상호 작용이 가능하다.자원 공유 : 스레드는 자동적으로 그들이 속한 프로세스의 자원들과 메모리를 공유한다. 코드 공유의 이점은, 한 응용 프로그램이 같은 주소 공간 내에 여러 ..

Thread/팁 2012.10.22

[스크랩] 스레드 실행 예

출처 : 위키백과 http://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C------------------------프로세스와 스레드의 비교멀티프로세스와 멀티스레드는 양쪽 모두 여러 흐름이 동시에 진행된다는 공통점을 가지고 있다. 하지만 멀티프로세스에서 각 프로세스는 독립적으로 실행되며 각각 별개의 메모리를 차지하고 있는 것과 달리 멀티스레드는 프로세스 내의 메모리를 공유해 사용할 수 있다. 또한 프로세스 간의 전환 속도보다 스레드 간의 전환 속도가 빠르다.멀티스레드의 다른 장점은 CPU가 여러 개일 경우에 각각의 CPU가 스레드 하나씩을 담당하는 방법으로 속도를 높일 수 있다는 것이다. 이러한 시스템에서는 여러 스레드가 실제 시간상으로 동시에 수행될 수 있기..

Thread/팁 2012.10.22

[스크랩] Thread Model

[출처] 스레드 모델(Thread Model)|작성자 표효찬http://blog.naver.com/gouhc46?Redirect=Log&logNo=60144278990-------------------------------------------고전적인 스레드 모델프로세스를 바라보는 관점1. 서로 관련된 자원을 한 군데로 모은다.(address space, code, data, etc...)2. 실행의 흐름(thread)=> 결국 프로세스는 자원을 한 군데로 모으고, 스레드는 CPU에서 실행되는 것 여러개의 스레드가 하나의 프로세스에서 병렬로 수행되는 것은, 여러개의 프로세스가 하나의 컴퓨터에서 병렬로 수행되는 것과 유사하다스레드의 경우는 한 프로세스 안에 들어있는 스레드들이 주소공간과 자원들을 공유한다...

Thread/팁 2012.10.22

[스크랩] C/C++ volatile 키워드

출처 : http://skyul.tistory.com/337--------------------------------------------------------------------2006년 9월 마이크로소프트웨어 기고글입니다. 약 60여개의 C++ 키워드 중에 가장 사용 빈도가 낮은 키워드는 무엇일까? 정답은 volatile이다. 대부분의 C/C++ 참고 서적은 1-2줄 정도로 volatile이 컴파일러의 최적화(optimization) 막아준다고만 설명하고 있다. 또한 Java5 이후로 명확한 메모리 모델이 확립된 자바와는 달리 C/C++의 경우 volatile에 대한 명확한 표준이 없고 컴파일러마다 구현에 차이가 있다는 점도 volatile 키워드의 사용을 어렵게 하고 있다. 하지만 임베디드 시스템..

Thread/Windows 2012.10.22

[스크랩] Interlocked 함수들..

출처 : http://silita.tistory.com/10 멀티쓰레드상 한쓰레드가 메모리상에 처리 중 다른 쓰레드가 같은 메모리에 접근하지 못하도록 해야하는데 흔히 크리티컬섹션등의 동기화함수를 쓰게 됩니다. 근데 접근못하게 하는 시간을 최대한 짧게 할 수록 멀티쓰레드를 사용하는 서버의 성능이 향상되게 되죠. 그런 의미에서 쓰레드 세이프하면서 코스트 적은 숫자 증가 방법은 여러모로 활용 가능성이 높습니다. 윈도우에서는 이를 위해 Interlocked 라는 접두어를 붙인 함수를 제공하죠. 여러 기능의 함수가 많지만 우선 간단하게 4바이트 메모리에 락을 걸어 작동하는 함수들에 대해 정리를 해봤습니다. LONG InterlockedExchange( LPLONG Target, LONG Value )..

Thread/Windows 2012.10.19

[Thread] GetCurrentThread Function

스레드 내에서 현재 자신의 스레드 아이디를 구하기 위해서는 GetCurrentThreadId라는 함수를 사용하면 된다. 파라미터는 없으며, 리턴 값은 현재 실행되고 있는 스레드의 아이디를 반환해 준다. 마찬가지로 GetCurrentThread를 사용하면 현재 실행되는 스레드의 의사 핸들을 반환 받을 수 있다. Read more: http://www.jiniya.net/wp/archives/7194#ixzz29d9JwHJ2

Thread/Windows 2012.10.18

[Thread] DuplicateHandle 사용 팁

소켓핸들이 한개로 WSARecv로 수신대기중인 상태에서, WSASend로 데이터를 보내게 되면 WSARecv로 대기중이던게 취소됩니다. 이때 발생하는 에러가 님이 말씀하신 ERROR_OPERATION_ABORTED입니다.이 에러는 발생해도 끊어지거나 뭐 별다른 일은 일어나지 않습니다.아마도 데이터를 보낼려고 하는데, 그 핸들이 사용중이니까 일단 사용중인것을 취소하고 보내지 않나 싶네요하여간, 이 에러가 발생하지 않게 하기 위해서는 핸들을 2개 사용하면 되구요..WSADuplicateSocket 이나 DuplicateHandle 를 사용해서 복사해서 한개는 수신을 한개는 송신을 하면 됩니다. 저는 accept에서 발생한 핸들을 수신용으로, 복사해서 나온 핸들을 송신용으로 사용하고 있습니다. 새로운 핸들이 ..

Thread/Windows 2012.10.18
반응형