Java 15

스레드 - interrupt()

스레드의 작업을 중간에 중단하는 방법flag값 설정 및 수정interrupt() 사용 flag값 설정특정 스레드의 실행을 flag 값이 true인 동안 계속해서 작업하도록 설정한다특정 스레드를 중단하는 시점에 flag 값을 false로 바꾼다이렇게 하면, 다음 반복문 실행 시점에 flag 값을 확인하고 해당 작업을 빠져 나온다static class MyTask implements Runnable { volatile boolean runFlag = true; @Override public void run() { while (runFlag) { log("작업 중"); sleep(3000); } log("자원 정리")..

스레드 - join()

join()특정 스레드가 다른 스레드들의 작업이 끝난 후, 무언가를 종합해서 하고 싶다면 join() 메소드를 사용해주면 된다. ex)스레드1 - 1 ~ 50의 합을 구한다스레드2 - 51 ~ 100의 합을 구한다메인 - 스레드1,2의 결과값의 합을 구한다 public static void main(String[] args) { log("start"); SumTask task1 = new SumTask(1, 50); SumTask task2 = new SumTask(51, 100); Thread thread1 = new Thread(task1, "task1"); Thread thread2 = new Thread(task2, "task2"); ..

스레드 제어

쓰레드 기본 정보스레드 ID - 스레드의 고유 식별자, 스레드 생성 시 할당되고, 지정할 수 없다.스레드 이름 - 내가 지정할 수 있고, 중복될 수 있다.스레드 우선순위 - 1(낮음) ~ 10(높음), 기본값은 5, 절대적인 실행순서는 아니다.(힌트)힌트라는 말은, 스케줄러가 '참고'하는 대상으로 인식한다는 정도스레드 그룹 - 스레드가 속한 그룹, 자주 사용하지는 않음부모 스레드 - 모든 스레드는(main 제외) 누군가가 생성해준다. 나를 생성해준 스레드가 부모 스레드스레드 상태 - 스레드의 현재 상태NEW - 스레드가 생성되고 아직 실행되진 않은 상태RUNNABLE - 스레드를 실행중이거나, 실행될 준비가 된 상태BLOCKED - 동기화 락을 기다리는 상태WATING - 다른 스레드의 작업이 완료되기를..

스레드의 생성과 실행

스레드의 생성Runnable 인터페이스 구현을 사용하자Thread 클래스 상속Runnable 인터페이스 구현 스레드는 Thread 클래스를 상속해서 만들거나, Runnable 인터페이스를 구현하는 방법으로 생성할 수 있다.실무에서는 Runnable 인터페이스를 구현하는 방법을 선호한다.Thread 클래스를 상속하는 경우, 다른 상속이 있는 경우에는 사용할 수 없다( 다중 상속 X )따라서, 스레드와 실행할 작업을 명확히 나누어서 개발할 수 있는 Runnable 방식을 사용한다.  스레드 생성 - Thread 클래스 상속Thread 클래스 상속 후 run() 메소드를 오버라이딩한다.public class HelloThread extends Thread { @Override public void ..

프로세스와 스레드

멀티태스킹하나의 컴퓨터 시스템이 동시에 여러작업을 수행하는 능력소프트웨어적 관점( 무지하게 빠른 CPU를 잘 활용해보자는 )CPU가 빠르게 여러가지 프로그램의 코드를 번갈아가며 실행하여, 동시에 실행되는 것 처럼! 멀티프로세싱둘 이상의 프로세서(CPU 코어)를 사용하여 동시에 여러 작업을 동시에 처리하는 기술하드웨어적 관점( 코어의 갯수가 여러가지 )코어의 갯수만큼은 동시에 프로그램을 실행할 수 있는 것! 프로세스실행중인 프로그램프로그램이 클래스라면, 프로세스는 인스턴스프로세스별 독립적인 공간 보유코드섹션, 데이터 섹션, 힙, 스택으로 구분( 스택은 스레드별로 주어지고, 나머지는 프로세스별로 주어진다! )스레드를 실행하기 위한 컨테이너의 느낌으로 생각하면 된다 스레드프로세스 내에서 반드시 하나 이상 존재..

[김영한의 실전 자바 - 기본편] 기본형과 참조형

기본형과 참조형기본형과 참조형 또한 자바를 공부하면서 반드시 이해하고 넘어가야 하는 내용이다.내용 자체는 어렵지 않지만, 헷갈릴 수 있기 때문에 한번 정리하고 넘어간다. 기본형(Primitive Type)int, long, double, boolean과 같이 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입 참조형(Reference Type)클래스, 배열과 같이 데이터에 접근하기 위한 주소값을 저장하는 데이터 타입( Student student, int[] students ) 기본형 = 데이터의 값을 넣을 수 있는 데이터 타입참조형 = 데이터의 주소값을 넣을 수 있는 데이터 타입 기본형은 변수에 값을 직접 넣어서, 참조형은 변수에 주소값을 넣어서 그 주소를 참조해 사용한다public static voi..

[김영한의 실전 자바 - 기본편] 클래스

클래스필드와 메소드로 구성되어 객체를 정의하는 역할 자바에서 클래스란 객체를 정의하는 틀, 설계도와 같은 의미로 사용된다.이 틀을 가지고, 객체를 생성하여 사용한다. 클래스는 객체의 상태를 나타내는 필드, 객체의 행동을 나타내는 메소드로 구성된다.필드는 객체에 포함되어 있는 변수를, 메소드는 함수와 같이 특정 작업을 수행하기 위해서 사용하는 집합체라고 할 수 있다 참 어려웠다.대학교때 이걸 처음봤을때가 생각난다. 클래스? 객체? 그게 그거 아닌가...특히 처음 접해보는 분들이 이 설명을 듣고 바로 이해를 할 수 있을까?강의에서는 이를 위해서 클래스가 필요한 이유를 설명해준다.  클래스가 필요한 이유? 먼저 다음 예시를 살펴보자.3개의 변수를 활용해서 간단히 학생의 정보를 입력하고, 이를 출력하는 코드이다..

[김영한의 실전 자바 - 기본편] 수강 후기

영한님의 자바 영한님의 자바 강의가 신규로 오픈되었다. 이번 자바 강의는 영한님이 다니던 우아한형제들에서 퇴사하시고, 처음 오픈되는 강의였다. ( 영한님은 이제 강의를 찍는데 집중한다고 하신다 ) 스프링을 한참 공부하고 있었지만, 영한님이 바라보는 자바를 꼭 한번 보고싶었다. 스프링 강의 중간중간 영한님이 자바에 대한 언급을 하실때마다 궁금했다. 개발바닥에서는 호돌맨님께서 처음 자바를 배우는 과정에서 영한님의 '지옥자바' 스터디가 언급되었다. 잠시 스프링 공부를 멈추더라도, 꼭 한번 보고 싶어서 수강하게 되었다. 강의는 입문편, 기본편이 동시에 오픈되었다. 입문편 입문편은 보통 책으로 보자면, 객체지향언어가 시작되기 직전까지의 내용이다. 이걸 심지어 무료로 공개하셨다... 물론 입문편도 수강해보았는데, ..

[혼공단10기] JAVA - 회고

혼공단을 마치면서 7월부터 시작하여, 8월 20일까지 혼공단이 종료되었다 간단한 활동이지만, 총 6주를 계획대로 움직였다는 것에서 뿌듯함을 느낀다 생각해보면 이번 여름도 참 정신없이 지나갔는데 혼공단을 하지 않았으면, 왠지 모르게 그냥 바쁘게만 지나갔을거 같은 시간이었다 혼공단을 시작했던 이유는 꾸준히 블로그에 글을 올리는 경험과 자바를 다시 한번 공부한다는 것 그리고 이걸 시작으로 해서 더 많은 공부를 하는것이다 매주 내 스스로 공부한 내용을 정리하고 내 생각을 덧붙였다 확실히 정리를 기가 막히게 하시는분들이 많았는데, 또 한번 동기부여를 받는다 나도 나름... 노력하고 싶었지만 회사를 다니며 정리하기가 쉽지 않은거 같다 지금 다시 보니 매주 정리한 내용을 따로 개념정리 부분만 분리해 올려보아야 겠다 ..

Java/혼공단 2023.08.20

[혼공단10기] JAVA - 6주차

마지막 주차 무더운 여름이 지나가고 있다. 아직도 30도가 넘는 무더위가 우리를 괴롭히고 있다. 이번 나의 여름은 어땠나 여름휴가는 스펙타클하고 힘들었지만, 언제 그랬냐는듯 벌써 오키나와가 그리워지고 있다. 그때는 몰랐던 그 순간순간이 생각이난다. 광복절에는 가장 가고싶었던 컨퍼런스, IT인의 축제인 인프콘에 다녀왔다. 새삼 너무 많은 사람들이 열정을 가지고 있다는 사실을 몸소 느낄 수 있었다. 더 열심히 해야겠다는 생각이 너무나 많이 들었던 순간이었다. 그리고 이번 여름은 혼공단을 하면서 열정을 이어나갈 수 있었다. 오랜만에 다시 자바를 공부하면서 많은것을 느낄 수 있었다. 벌써 6주가 지났지만, 더 공부하고 싶다는 생각이 든다. 이런 생각을 하게 해주셔서 참 감사하다. 6주차 기본미션 - 입출력 스트..

Java/혼공단 2023.08.15