예외 처리(Exception handling) 오류(error)와 예외(exception) 프로그램이 비정상적으로 동작하는 경우는 크게 오류(error)와 예외(Exception) 두가지가 있다. 오류는 시스템 레벨에서 프로그램에 심각한 문제를 야기하여 실행 중인 프로그램을 종료시킨다. 오류는 개발자가 미리 예측하여 처리할 수가 없는 것이 대부분이고, 오...
스레드 관련 개념 프로세스(process)와 스레드(thread) 프로세스는 프로그램이 메모리를 할당받아 실행 중인 상태를 의미하고, 데이터와 메모리 등의 자원과 스레드로 구성된다. 하나의 프로그램에서 여러 개의 프로세스가 생길 수가 있다. 같은 프로그램을 여러번 실행하면 실행한 횟수 만큼 프로세스가 생기는 것이다. 스레드는 프로세스 내에서 실제로 작업...
동기화 메서드와 동기화 블록 공유 객체 사용 시 문제점 여러 스레드가 같은 객체를 조작할 경우 코드가 번갈아 실행되기 때문에 의도치 않은 동작을 할 수가 있다. 한 스레드에서 값을 조작한 후 출력을 하려고 하는데 다른 스레드에서 다른 값으로 변경을 한다면 의도한 결과를 출력할 수가 없을 것이다. 동기화 메서드(Synchronized method) 하나의 ...
데몬(Daemon) 스레드 주 스레드의 작업에 보조적인 역할을 하는 스레드를 말한다. 종속적이기 때문에 주 스레드가 종료되면 데몬 스레드도 자동 종료된다. ex) 네이버 메일 작성시 자동 저장 기능 설정 방법 주 스레드에서 데몬 스레드가 될 스레드의 setDaemon(true)를 호출한다. start 호출하기 이전에 호출해야 한다. 스레드 그룹(Thre...
스레드 풀 - Part 2 작업 생성 Runnable이나 Callable 인터페이스의 구현 객체로 표현한다. Runnable은 run 메서드의 반환값이 존재하지 않고, Callable은 존재한다. 스레드 풀의 스레드는 작업 큐에서 Runnable이나 Callable 객체를 가져와 run과 call 메서드를 실행하게 된다. 작업 처리 요청 Executor...