'programming/Java' 카테고리의 글 목록 (2 Page) :: 놓치기 쉬운 정보 저장
728x90
반응형
SMALL

Thread 개념에 대해서 알아보겠습니다.

 

프로그램(program) : 실행 가능한 형태의 소프트웨어

프로세스(process) : 실행 중인 프로그램

스레드(Thread) : 프로세스의 작업 단위 - 운영체제가 프로그램을 관리하는 방식으로 자바로 만든 프로그램에서도 스레드(Thread)가 만들어지고 동작할 수 있다. (CPU가 동시에 둘 이상의 스레드를 돌리진 않는다. 다만, 눈에 보이지 않을 정도로 빠르게 움직인다는 거..)

스레드(Thread)는 동시성과 병렬성을 가지고 수행하기 때문에 사용자는 동시에 동작하는 것으로 인식한다.

개념
프로세스 구조
스레드 구조
멀티 스레드의 필요성

스레드(Thread)의 실습 예제(1)

 

* 둘 이상의 스레드를 생성해서 어떤 것이 먼저 처리되는지에 대해서 실습

  결론 : 먼저 실행한 코드가 먼저 실행, 그러나 먼저 끝나는 것도 아니다.

스레드(Thread)의 실습 예제(1)

 

스레드(Thread)의 실습 예제(2)

 

* 우선순위(setPriority)를 활용하면 우선순위가 높아지나, 운영체제나 사용 시스템에 따라 결과는 다를 수 있으며, 우선순위가 높다 해도 무조건 선점하는 건 아니라는 점.

스레드(Thread)의 실습 예제(2)

스레드(Thread)의 실습 예제(3)

* 순차적인 동작을 처리할 때 싱크가 맞지 않는 부분을 수정해보기

결론 : 정상적으로 처리되며, 동기화(synchronized) 함수를 활용해서 메서드 간의 동기화를 통해서 다른 메서드의 동작 때 침범하지 않고 기다려주도록 구현

스레드(Thread)의 실습 예제(3)

스레드(Thread)의 실습 예제(4)

* 스레드 풀(Executors) 생성 : 스레드를 담아두는 집합체, 스레드가 많으면 이론적으로 cpu 메모리가 부하가 날 수도 있다는 이론에 따라 cpu가 부담을 느끼지 않도록 일처리를 해주는 함수

스레드(Thread)의 실습 예제(4)
스레드(Thread)의 실습 예제(4)

 

728x90
반응형
LIST
728x90
반응형
SMALL

interface, 인터페이스에 대해서 알아보겠습니다.

 

개념 : 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것입니다. 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 인터페이스를 사용한다.

인터페이스 정의
인터페이스 상속 설명
인터페이스 상속 설명(1)
인터페이스 상속 설명(2)
인터페이스 객체 생성
인터페이스 필요성
인터페이스 필요성(1)
인터페이스 필요성(2)
인터페이스 필요성(3)
디폴트 메서드
디폴트 메서드(1)
디폴트 메서드(2)
정적 메서드
코드 사용 예

728x90
반응형
LIST
728x90
반응형
SMALL

abstract, 추상 메서드에 대해서 알아보겠습니다.

 

개념 : 자식 클래스에서 반드시 오버 라이딩해야만 사용할 수 있는 메서드를 의미합니다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메서드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메서드를 구현하도록 하기 위함입니다.

 

단어 뜻
추상 메서드 설명
추상 메서드 위치
추상 클래스
추상 클래스에 오버라이딩과 구현하기
특징
코드 구현

728x90
반응형
LIST
728x90
반응형
SMALL

Object 최상위 클래스에 대해서 알아보겠습니다.

 

Object 클래스 : 모든 자바 클래스의 부모 클래스이며 모든 자식 클래스는 Object의 메서드를 가집니다.

* System.out.println(new A()); 와 같이 모든 클래스 타입을 출력할 수 있었던 이유가 바로 이 클래스가 있기에 가능합니다.

 

class A "  " {  }   >> "  " 부분에 별도로 추가하지 않으면 extends Object 자동으로 추가되어 있습니다.

 

가장 많이 쓰는 메서드 일부만 알아보겠습니다.

object 클래스
자주 쓰이는 메서드
toString()
equals()

 

equals() 적용 예시
hashcode()

 

728x90
반응형
LIST
728x90
반응형
SMALL

super & super()에 대해서 알아보겠습니다.

 

super  : 객체 리터럴 또는 클래스의 [Prototype] 속성에 액세스 하거나 슈퍼클래스의 생성자를 호출하는 데 사용되고, 필드명 중복 또는 메서드 오버라이딩으로 가려진 부모의 필드/메서드를 호출하기 위해 주로 사용합니다.

코드 중복 및 메모리 사용 절약을 위해 활용합니다.

 

super() : 생성자 내부에서만 사용 가능, 반드시 중괄호 이 후 첫 줄에 위치하여야 합니다. 자식 클래스 생성자의 첫 줄에는 반드시 this() 또는 super()이 포함되어야 합니다.

 

 

super 설명
super 주요 사용되는 이유
super() 설명
super() 설명(1) 코드 적용 예
super() 설명(2) 코드 적용 예

 

 

이상 super & super() 에 대해서 알아보았습니다.

728x90
반응형
LIST

+ Recent posts