Thread design에 대한 이해는, 기본적으로 잠금 정책에 over head를 이해하고 있느냐에서 출발한다고 생각합니다. 잠금 기반 프로그래밍은, 자주 사용하는 코드가 잠기게 될수록 성능이 수직 하향합니다.대기 하느라, 제대로 된 퍼포먼스를 낼 수 없다는 얘기죠. 그렇게 하지 않기 위해, 객체 간에 잠금에 신경쓰지 않게끔, 객체 간 접점을 줄여주어야 합니다. 좋은 Thread design의 목표는 어떻게 잡아야 할까요? 접점 최소화손쉬운 비동기 처리의도한 대로 순차 처리 (순서가 중요한 동작의 순서 보장) 디테일하게 나열하자면 얼마든지 많겠지만, 저는 위 세가지 목표가 보장된 기반 코드는, 컨텐츠 구현 시에 필요한 요구 사항을 다수 충족 시킬 수 있습니다. 이런 문제가 현세대 멀티스레드 프로그래밍의..
https://nssm.cc/ nssm-2.24.zip rails 서비스화에 사용한 배치 파일 예제입니다. 아주 간단해요.윈도우 서버의 경우 권한 문제에 빠질 수 있는데, 이 경우 아래 링크처럼 대처하세요.http://elky.tistory.com/561 pushd %~dp0@echo off %cd%\nssm.exe install %1 C:\RailsInstaller\Ruby2.1.0\bin\rails.bat "s -p 8000 -e production"%cd%\nssm.exe set %1 AppDirectory %cd% pushd %~dp0@echo off net start %1 pushd %~dp0@echo off net stop %1 pushd %~dp0@echo off net stop %1 nss..
제가 프로그래밍을 처음 배울 때의 CLI 프로그래밍과 WIN32 프로그래밍으로 넘어왔을 때 큰 괴리를 느꼈습니다.그 이유는 바로 EVENT-DRIVEN(message based)프로그래밍 때문이었죠.현재는 reactor라는 패턴이란 이름으로 더 알려진 이 메시지 기반 프로그래밍은, DOS 시절의 동기 프로그래밍에 익숙한 많은 프로그래머를 괴롭게 했습니다. message라는걸 왜 굳이 만들어 처리하는가….에 대해 저는 그 당시 이해하기 어려웠습니다.당시만해도, 윈도우 메시지를 굳이 처리하지 않고도 여러 작업이 가능했기 때문이죠. 예를 들어 GetAsyncKeyState (http://msdn.microsoft.com/ko-kr/library/windows/desktop/ms646293(v=vs.85).as..
클럭도 물론 중요하지만, 코어가 몇갠지 부터 보는 일이 자연스러워진지도 몇년. 다들 병렬 프로그래밍 잘 하고 계시나요? 서버 프로그래밍을 시작한 2006년부터 지금까지... 멀티 스레드를 다뤄오며, 느낀 것에 대해 이야기해보고자 한다. lock 말그대로 잠금. 이 데이터 unlock 될때 까지 쓰지말라는 거다. - non-blocking non-blocking이 뭐냐고? 대기하는 상황(blocking) 없이 코드가 수행되는 것을 말한다. - lock is blocking. lock이라는 것 자체가 blocking을 위한 녀석이다. 멀티스레드에 적합한 녀석 일리 없다. - lock-free container나 데이터에 접근할 때에 lock 객체에 대한 고민없이 사용해도 되는 자료구조나 스레드 모델을 loc..
1.Critical Section - 유저 레벨의 동기화 방법 중, 유일하게 커널 객체를 사용하지 않음. - 내부 구조가 단순하여 동기화 처리에 대한 속도가 빠르다. - 동일한 프로세스 내에서만 사용. - 커널 객체를 사용하지 않기 때문에 핸들을 사용하지 않고, CRITICAL_SECTION 이라는 타입을 정의하여 사용. ?12345678910111213141516// 크리티컬 섹션을 초기화한다. // 파라메터는 여러 개의 쓰레드에 참조되어야 하므로 전역으로 선언하도록 한다.void InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection); // 생성된 크리티컬 섹션을 삭제한다. void DeleteCriticalSection(LPCRITICAL_..
XML 예약문자, &는 XML tag 표시와 entity를 표시하는 XML 예약문자로, XML 문서에 그대로 사용할 수 없다. (greater-than sign)>& (ampersand)& 그리스문자그리스 문자는 풀어서 사용한다.αalphaβbetaγgammaδ,Δdeltaεepsilonζzetaηetaθthetaιiotaκkappaλlambdaμmicronνnuξxiοomicronπpiρrhoσ, Σsigmaτtauυupsilonφphiχchiψpsiω, Ωomega 기호 & 부호≤ or =±+/-˚degrees℃degrees C→-->㎍, μGmicrogram㎕, μLmicroliter㎛, μMmicrometer®(R)™(TM)χ2chi─square ..
- Total
- Today
- Yesterday
- 임백준
- EasyExec
- TDD
- NDC2013
- SDL
- Rails
- 좋은 프로그래머
- 게임데브포에버
- 바로가기 프로그램
- 조엘 온 소프트웨어
- RoR
- ftp
- Ruby on Rails
- TraceRoute
- 루비
- perfmon
- MS-SQL
- 디버깅
- 리버스 엔지니어링
- svn
- 엘키
- EzShortcut
- SQLite Spy
- ruby
- 멀티스레드
- 디자인 패턴
- 루비 온 레일즈
- CppSQLite
- 게임개발포에버
- c언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |