Java 109

[객체지향][쓰레드/thread] - sleep(), interrupt()

https://youtu.be/cDUcF1QD4Gw?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. 쓰레드의 실행을 제어하는 메서드 sleep( ), interrupt() [sleep( )] 현재 쓰레드를 지정된 시간동안 멈추게 한다. (잠자게 한다.) static void sleep(long millis) // 천분의 일초 단위 static void sleep(long millis, int nanos) //천분의 일초 + 나노초 sleep()은 static 메서드로 항상 현재 쓰레드에 동작하게 한다. static = 자기 자신에게만 동작 양보의 경우도 자신이 양보는 가능하지만 다른 쓰레드..

Java/객체지향 2022.03.02

[객체지향][쓰레드/thread] - 데몬 쓰레드, 쓰레드의 상태

https://youtu.be/W0v3Gwx92hc?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [데몬 쓰레드(demon thread)] 일반 쓰레드(non - daemon thread)의 작업을 돕는 보조적인 역할을 수행한다. 일반 쓰레드가 모두 종료되면 자동적으로 종료된다. 어떤 일을 할 때 데몬 쓰레드를 사용할까? 가비지 컬렉터, 자동저장, 화면 자동갱신 등에 사용된다. 무한 루프와 조건문을 이용해서 실행 후 대기하다가 특정 조건이 만족되면 작업을 수행하고 다시 대기하도록 작성한다. 무한루프는 자동 종료가 되는 것이기 때문에 무한루프로 작성해도 괜찮다. boolean isDaemo..

Java/객체지향 2022.03.01

[객체지향][쓰레드/thread] - 쓰레드의 우선순위, 쓰레드 그룹

https://youtu.be/KWZjeW6zkyY?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [쓰레드의 우선순위(priority of Thread)] 작업의 중요도에 따라 쓰레드의 우선순위를 다르게 하여 특정 쓰레드가 더 많은 작업 시간을 갖게 할 수 있다. 자바에서는 쓰레드의 우선순위를 1 ~ 10까지 줄 수 있다. (10이 가장 중요) void setPriority(int newPriority); //쓰레드의 우선순위를 지정한 값으로 변경한다. int getPriority(); public static final int MAX_PRIORITY = 10; //최대 우선순위 publ..

Java/객체지향 2022.03.01

[객체지향][쓰레드/thread] - 싱글 쓰레드와 멀티 쓰레드, 쓰레드의 I/O 블락킹

https://youtu.be/2eJc9ZdRe2c?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [main 쓰레드] main 메서드의 코드를 수행하는 쓰레드를 main 쓰레드라고 한다. 쓰레드는 '사용자 쓰레드'와 '데몬 쓰레드(=보조 쓰레드)' 두 종류가 있다. 실행 중인 사용자 쓰레드가 하나도 없을 때 프로그램은 종료된다. 즉, 메인 쓰레드가 실행을 맞치고 종료되었다고 해도 실행중인 쓰레드가 남아있다면 프로그램은 종료되지 않는다. package javajungsuk; public class Java13_11 { static long startTime = 0; public static..

Java/객체지향 2022.02.28

[객체지향][쓰레드/thread] - 쓰레드구현과 실행

https://youtu.be/P1zDndoy4pI?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [쓰레드의 구현과 실행] Thread 클래스를 상속 자바는 단일 상속만 허용하기에 인터페이스로 구현하는 것이 낫다. Runnable 인터페이스를 구현 [쓰레드를 구현하는 방법 2가지를 이용한 쓰레드 구현] package javajungsuk; public class Java13_1 { public static void main(String[] args) { ThreadEx1_1 t1 = new ThreadEx1_1(); Runnable r = new ThreadEx1_2(); Thread t..

Java/객체지향 2022.02.26

[객체지향][쓰레드/thread] - 쓰레드

https://youtu.be/kNNHaAaFDs8?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [프로세스와 쓰레드 (process & thread)] 프로세스: 실생 중인 프로그램, 자원(resources)과 쓰레드로 구성된다. 쓰레드: 프로세스 내에서 실제 작업을 수행하는 것을 의미한다. 모든 프로세스는 최소한 하나의 쓰레드를 가지고 있다. 프로세스 : 쓰레드 = 공장 : 일꾼 싱글 쓰레드 프로세드 자원 + 쓰레드 멀티 쓰레드 프로세스 자원 + 쓰레드 + 쓰레드 + .... + 쓰레드 일꾼이 여러명이라 더 효과적으로 작업을 처리할 수 있다. 하나의 프로세스를 생성하는 것보다 하나의 ..

Java/객체지향 2022.02.26

[객체지향][애너테이션/Annotation] - 애너테이션 타입 정의하기, 애너테이션의 요소

https://youtu.be/81U0MyuZQKo?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [애너테이션 타입 정의하기] 애너테이션을 직접 만들어 쓸 수 있다. @interface 애너테이션 이름{ 타입 요소이름(); } 애너테이션의 메서드는 추상 메서드며, 애너테이션을 적용할 때 지정한다. (순서X) 요소 이름과 값을 같이 적어주기 때문에 어떤 요소에 어떤 값을 지정했는지를 다 알 수 있어서 순서는 상관이 없다. [직접 만들어 본 애너테이션] @interface TestInfo { int count(); String testedBy(); String[] testTools(); Te..

Java/객체지향 2022.02.25

[객체지향][애너테이션/Annotation] - 메타 애너테이션(Meta Annotation)

https://youtu.be/p7KStWk8hWU?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [메타 애너테이션이란?] 메타 애너테이션은 '애너테이션을 위한 애너테이션' 메타 애너테이션은 java.lang.annotation 패키지에 포함되어 있다. [@Target] 애너테이션을 정의할 때, 적용 대상 지정에 사용한다. [@Retention] 애너테이션이 유지(retention)되는 기간을 지정하는데 사용한다. 컴파일러에 의해 사용되는 애너테이션의 유지 정책은 SOURCE이다. 실행시에 사용 가능한 애너테이션의 정책은 RUNTIME이다. [@Documented, @Inherited] ..

Java/객체지향 2022.02.25

[객체지향][애너테이션/Annotation] - 애너테이션(Annotation)

https://youtu.be/i4V8ZI9Undc?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [애너테이션이란?] 주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보를 제공하는 것을 의미한다. 특정 프로그램(정보제공, 설정정보)을 위한 것으로 특정 프로그램이 아니라면 영향이 아예 없다.\ 설정 정보를 XML로 공유할 때 많은 사람들이 수정하기가 번거롭기 때문에 본인이 필요한 설정 정보만 애너테이션으로 설정해서 사용하는 것이 바람직하다. [애너테이션의 사용 예시] @Test //애너테이션 public void method() { } @Test 애너테이션은 이 메서드가 단위 테..

Java/객체지향 2022.02.24

[객체지향][열거형] - 열거형에 멤버 추가하기

https://youtu.be/R0WrMaKoLTE?list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp 📖본 포스팅은 '자바의 정석 - 남궁성 저자' 님의 책과 유튜브 강의를 보고 작성되었습니다. [열거형에 멤버 추가하기] 불연속적인 열거형 상수의 경우, 원하는 값을 괄호 안에 적는다. enum Direction {EAST(1), SOUTH(5), WEST(-1), NORTH(10)} 괄호( )를 사용하려면, 인스턴스 변수와 생성자를 새로 추가해줘야 한다. enum Direction{ EAST(1), SOUTH(5), WEST(-1), NORTH(10); private final int value; //정수 저장 필드(인스턴스 변수)를 추가 Direction(int value) { t..

Java/객체지향 2022.02.22