Development/Java(853)
-
Critical Section(임계영역; 임계구역)
Critical Section(임계영역; 임계구역)· 크리티컬 섹션은 한번에 한 스레드만 사용할 수 있는 코드 영역입니다.· 한 쓰레드가 특정 작업을 마치기 전까지 다른 쓰레드에 의해 작업을 방해받지 않도록 하는 것입니다.· 멀티 스레드에 의해 공유자원이 서로 참조될 수 있는 코드 범위입니다.· 병렬컴퓨팅에서 둘 이상의 스레드가 동시에 접근해서는 안 되는 공유자원(자료 구조 또는 장치)을 접근하는 코드부분을 말합니다.· 공유 데이터(객체)를 사용하는 코드 영역을 임계영역으로 지정해놓고, 공유 데이터가 가지고 있는 lock을 획득한 한 쓰레드만 이 객체의 영역 내의 코드를 수행할 수 있도록 합니다. 해당 쓰레드가 임계 영역내의 모든 코드를 수행하고 이 영역을 벗어나면서 lock을 반납하게 되면 이 때 다른..
-
스레드 스케줄링(Thread Scheduling), 스레드 스케줄링 방식, 스레드 스케줄러, 스레드 우선순위, , Thread 클래스의 우선순위를 정하는 멤버변수, 선점형 스레드 스케줄링 방식, 순환할당(Round-Robin)방..
스레드 스케줄링(Thread Scheduling)스레드의 개수가 코어의 수보다 많을 경우, 스레드를 어떤 순서에 의해 동시성을 실행할 것인가를 결정해야 하는데 이것이 스레드 스케줄링입니다.스레드 스케줄러에 의해 여러 스레드들이 아주 짧은 시간동안 번갈아가면서 스레드의 run()메소드를 조금씩 실행하게 됩니다. 스레드 스케줄링 방식· 선점형 스레드 스케줄링 방식은 스레드의 우선권을 가지고 우선순위(Priority)가 높은 스레드를 먼저 수행시키는 방식입니다.· 협력형 스레드 스케줄러는 실행중인 스레드가 CPU 사용권을 다른 스레드에게 넘길 때까지 기다리는 방식· JVM은 우선순위에 따른 선점형 스레드 스케줄링 방식을 사용하고 있습니다. 순환할당(Round-Robin)방식우선순위 방식으로 순환할당(Round..
-
Listener vs Adapter, 이벤트 어댑터 클래스(Adapter Class), Adapter 클래스 종류, Adapter 클래스 활용 방법
이벤트 어댑터 클래스(Adapter Class)· 이벤트를 처리하기 위하여 이벤트 리스너를 등록하여 처리를 해주어야 합니다.· 리스너가 인터페이스로 되어 있어 리스너에 선언되어 있는 추상메서드를 모두 오버라이드해야 사용이 가능합니다. 즉, 사용하지 않는 메서드까지도 모두 오버라이드하여 완성을 시켜야 사용 할 수 있습니다.(번거롭고 불편한 작업)· 그래서 자바 API에는 이러한 작업을 좀 더 쉽게 처리할 수 있도록 Adapter라는 클래스를 제공합니다.· Adapter 클래스는 이벤트 리스너 인터페이스들 중에서 추상메서드가 2개 이상 존재하는 인터페이스를 구현한 추상 클래스입니다.· 인터페이스에 있는 모든 메서드를 빈(Empty) 메서드로 재정의 하였기 때문에 인터페이스를 구현하여 불필요한 메서드를 재정의..
-
AWT(Abstract Window Toolkit) - GUI 프로그래밍(Graphic User Interface), java.awt 패키지 구조도(상속계층도)
GUI 프로그래밍(Graphic User Interface) GUI는 DOS(CUI방식)와 같은 방식의 텍스트 기반 운영체제가 아닌 그래픽(Graphic)을 이용하여 사용자와 프로그램 간의 상호작용을 할 수 있도록 해주는 인터페이스를 의미 자바에서 이러한 그래픽 기반 프로그래밍을 지원하기 위해 나온 것이 바로 AWT AWT의 기본 개념 AWT(Abstract Window Toolkit)는 GUI 프로그래밍을 제작하기 위해 자바에서 제공하는 라이브러리를 모아놓은 것(GUI 환경을 구축하기 위한 자바 API) AWT는 모든 GUI 프로그램에 사용되는 컴포넌트 및 툴킷을 제공하고 있으며 JFC와 같은 스윙(Swing) 및 Java2D의 모태가 되는 개념 버튼, 체크박스 등의 콤포넌트와 이벤트 처리를 위한 인터..
-
바이트 출력 스트림의 구조도, 바이트 출력 스트림(OutputStream)
바이트 출력 스트림의 구조도 바이트 출력 스트림(OutputStream)· OutputStream은 바이트 출력을 수행하는 데 필요한 메서드를 정의한 추상 클래스입니다.· 출력 스트림을 다루는 모든 클래스의 슈퍼 클래스입니다.· 프로그램이 시작 되면 장치와 연결된 두 개의 출력 스트림은 System.out, System.err를 생성합니다.· System.out 객체는 화면에 데이터를 출력합니다.· System.err 객체는 화면에 오류 메시지를 출력합니다.
-
is a 관계
is a 관계· 비슷한 속성 및 동작을 가진 객체들 간의 관계입니다.· 특정 객체가 다른 객체에게 자신의 능력을 물려주는(포함시켜주는) 상속관계를 의미합니다.· 비슷한 공통점들을 추출해서 상위 개념의 객체로 만들수 있으며 하위 객체들은 상위 개념의 객체를 상속받아서 사용함으로써 중복기능 및 속성을 제거하고 재사용성을 향상 시킬 수 있습니다.