GnuSmalltalkUsersGuide:BaseChapter 131
- Process
Process
네임스페이스 Smalltalk에 정의됨
슈퍼클래스: Link
범주: 언어-프로세스
- 나는 계산 단위를 나타낸다. 나의 인스턴스들은 독립적으로 실행 가능한 블록들로서, 그들과 연관된 우선순위를 가지며, 스스로 중단하고 그들이 원할 때 다시 재개할 수 있다.
Process: 접근하기
externalInterruptsEnabled
수신자가 활성화된 인터럽트를 이용해 실행되는지를 응답하라.
name
사용자 친화적인 프로세스명을 응답하라.
name: aString
aString 이름을 프로세스에 부여하라.
priority
수신자의 우선순위를 응답하라.
priority: anInteger
수신자의 우선순위를 anInteger로 변경하라.
queueInterrupt: aBlock
수신자를 간섭하여 활성 프로세스가 되는 즉시 aBlock을 평가하도록 강요하라 (수신자가 현재 활성화된 경우 지금 당장이 될 수도 있다). 프로세스가 임의로 중단되거나 세마포어(semaphore)를 기다리는 경우, 임의로 깨워 프로세스 우선순위가 허용하는 즉시 인터럽트가 처리되도록 한다. 수신자를 응답하라.
suspendedContext
컨텍스트가 중단되었을 당시 프로세스가 실행되던 컨텍스트를 응답하라.
valueWithoutInterrupts: aBlock
aBlock을 평가하고, 그 실행 도중에 요청되었던 모든 인터럽트를 aBlock 리턴 이후로 지연시켜라.
Process: 기본
context
수신자의 실행 컨텍스트를 리턴하라.
debugger
수신자의 디버깅을 책임지는 객체를 리턴하라. DebugTools 패키지가 로딩되지 않는 이상 이는 항상 nil을 리턴한다.
finalize
죽은 세마포어를 기다리는 동안 GC된 프로세스를 종료시켜라.
lowerPriority
수신자의 우선순위를 약간 감소시켜라. #lowerPriority는 이전 #raisePriority를 취소할 것이며, 그 반대도 마찬가지다.
makeUntrusted: aBoolean
수신자를 신뢰할 수 있는지 없는지를 응답하라.
primTerminate
수신자를 종료시켜라 - 프로세스를 재개한 다음 중단하는 행위를 금지하는 것에 불과하다.
raisePriority
수신자의 우선순위를 약간 증가시켜라. #lowerPriority는 이전 #raisePriority를 취소할 것이며, 그 반대도 마찬가지다.
singleStep
실행 준비 상태에 있는 (실행 상태나 종료 상태나 중단 상태가 아니라) 제한된 양의 수신자 코드를 실행한 후 (주로 바이트코드, 또는 다음 backward jump까지, 또는 다음 메시지 전송까지) 현재 프로세스의 실행을 재시작하라. 현재 프로세스는 수신자보다 우선순위가 높아야 한다. 더 나은 성능을 위해서는 기본이 되는 프리미티브, Process>>#singleStepWaitingOn:를 사용하라.
terminate
수신자 내에서 활성화된 모든 #ensure: 와 #ifCurtailed: 블록을 평가한 후에 수신자를 종료시켜라. 이는 ProcessBeingTerminated 알림의 시그널링을 통해 이루어진다.
terminateOnQuit
ObjectMemory class>>#quit: 이 전송되면 수신자가 종료되도록 수신자를 표시하라.
Process: builtins
resume
수신자의 실행을 재개하라.
singleStepWaitingOn: aSemaphore
실행 준비 상태에 있는 (실행 상태나 종료 상태나 중단 상태가 아니라) 제한된 양의 수신자 코드를 실행한 후 (주로 바이트코드, 또는 다음 backward jump까지, 또는 다음 메시지 전송까지) 현재 프로세스의 실행을 재시작하라. aSemaphore는 수신자와 현재 프로세스의 실행을 동기화하는 수단으로 사용되고, 그 위에 어떤 시그널도 있어선 안 된다. 현재 프로세스는 수신자보다 높은 우선순위를 가져야 한다.
suspend
중단될 준비가 되었다면 아무 일도 하지 않는다. 만들어진 blue book은 프리미티브를 중단한다는 사실을 주목하라 - 하지만 실제 프리미티브는 다른 프로세스에 대한 제어를 생성한다. 중단은 모든 스케줄링 리스트로부터 자신을 빼서 다른 프로세스로의 제어를 생성하는 것에 불과하다.
yield
수신자로부터 다른 프로세스로 제어를 생성한다.
Process: 인쇄하기
printOn: aStream
수신자의 표현을 aStream 상에 인쇄하라.