예제로 살펴보는 Go : 타이머 

Go에서 제공하는 time 패키지의 NewTimer메서드를 호출하면, 채널을 반환한다. NewTimer는 설정된 시간이 지난 후 채널에 메시지를 보내는데, 이를 이용해서 타이머를 구현 할 수 있다. 2초 후에 메시지를 전달하는 채널 데이터 timer1을 만들었다. 이 코드는 <-timer1.C에서 블럭된다. 2초 후 타이머가 작동해서 메시지를 수신하면 블럭...

예제로 살펴보는 Go : Range over Channels 

for & range 를 이용해서 채널을 체크 할 수 있다.string 메시지타입의 크기가 2인 채널을 만들었다. 여기에 두 개의 메시지를 전송하고 채널을 close 했다. 채널을 close 한다고 해서 즉시, 채널을 close하는 건 아니다. 채널이 비워진 후에 비로서 close 된다. for & range 문을 이용해서 채널로 부터 메시지를 읽는다. 채...

예제로 살펴보는 Go : 채널 닫기 

채널을 이용해서 worker 고루틴에 작업 메시지를 보낸다고 가정해 보자. 만약 더 이상 작업이 없다면, worker고루틴을 종료해야 할 것이다. 이를 위해서 worker는 더 이상 메시지가 없음을 측정 할 수 있어야 한다. 아래 예제를 보자.예제 프로그램의 main() 고루틴은 jobs채널을 이용해서 worker 고루틴과 통신을 한다. main 고루틴은 ...

예제로 살펴보는 Go : Non-Blocking 채널 사용 

Go의 채널은 기본적으로 블럭킹(Blocking)모드로 작동한다. 하지만 select 의 default문을 이용해서 논 블록킹 채널을 구현할 수 있다. 논 블럭킹 채널을 이용하면 두 개 이상의 selects를 기다릴 수 있다.9~15 줄을 보자. message 채널에서 메시지를 기다리고 있다. 원래대로라면 메시지를 기다리면서 블럭돼야 겠지만, default...

WSAOVERLAPPED 구조체 

WSAOVERLAPPED 구조체WSAOVERLAPPED 구조체는 overlapped(중첩) 입출력 연산의 초기화와 이후 작업 완료 루틴 사이에서의 통신수단을 제공한다. WSAOVERLAPPED 구조체는 OVERLAPPED 구조체와 호환된다. typedef struct _WSAOVERLAPPED { ULONG_PTR Internal; ULONG_PTR In...

WSANETWORKEVENTS 구조체 

WSANETWORKEVENTS 구조체WSANETWORKEVENTS 구조체는 소켓(typedef struct _WSANETWORKEVENTS { long lNetworkEvents; int iErrorCode;} WSANETWORKEVENTS, LPWSANETWORKEVENTS; lNetworkEvents FD_XXX 네트워크 이벤트에 대해서 측정된 이벤트...

WIN32_FIND_DATA 구조체 

WIN32_FIND_DATA 구조체FindFirstFile(), FindFirstFileEx, FindNextFile() 함수로 찾은 파일(typedef struct _WIN32_FIND_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ft...

Ruby Class : String 

Ruby Class 문자열에서 substring를 찾는다. 정규표현식을 사용할 수도 있다. 발견하면 발견한 위치의 index 값을 반환한다. 발견하지 못했다면 nil을 반환한다. "hello".index(e) #=> 1"hello".index(lo) #=> 3"hello".index(a) #=> nil"hello".index(?e) #=> 1"hello"...

ruby : Array Class 

ruby Array은 integer형 숫자를 색인으로 객체를 저장하고 접근하기 위해서 사용하는 클래스다. Array는 C나 Java의 배열과 마찬가지로 0부터 시작한다. C언어와 달리 음의 정수를 색인으로 할 수 있는데, 이 경우 배열의 끝에서 부터 색인을 시작한다. 예를 들어 -1은 배열의 마지막 원소, -2는 마지막에서 두번째 원소다.args를 원소로...

Ruby 1.9.3 core 

Ruby 1.9.3 coreRuby Class Reference...