프로세스와 스레드 컴퓨터의 구조 1. 프로세스 운영체제 안에서 실행 중인 프로그램, 프로세스는 프로그램의 인스턴스 실행되기 전 프로그램은 보조기억장치에 저장된 데이터였다가 운영체제가 메모리에 적재하고 실행되는 순간 프로세스가 만들어짐 프로그램 실행 = 프로세스 안의
1 .스레드 생성 스레드를 생성하는 방법에는 Thread를 상속받는 방법과 Runnable 인터페이스를 구현하는 방법이 있음 스레드 생성 전 자바는 실행 시점에 main이라는 이름의 스레드를 만들고 프로그램의 시작점인 main() 메서드 실행 스레드 생성
RUNNABLE (실행상태)start() 메서드가 호출되면 스레드는 이 상태로 들어감CPU에서 실행될 수 있는 상태, 운영체제 스케줄러의 실행 대기열에 있든, CPU에서 실제 실행되고 있든 모두 RUNNABLE 상태BLOCKED (차단상태)다른 스레드에 의해 동기화
main 스레드에서 2개의 작업을 각각 다른 스레드에 지시하고, 그 결과를 받아서 처리하고 싶을 때 → Join 사용Thread.sleep() 사용대기 시간을 손해보고, thread들의 수행시간이 달라지는 경우에 정확한 타이밍을 맞추기 어려움스레드의 상태가 TERMIN
멀티 스레드 환경에서 한 스레드가 변경한 값이 다른 스레드에 언제 보이는지에 대한 문제를 메모리 가시성이라 함캐시 메모리를 사용하면 CPU 처리 성능을 개선할 수 있지만 때로는 성능 향상보다 여러 스레드에서 같은 시점에 정확히 같은 데이터를 보는 것이 더 중요할 수 있