스레드의 우선순위 동시성 : 멀티작업을 위해 하나의 코어에서 멀티 스레드가 번갈아가면서 실행하는 성질 병렬성 : 멀티작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질 스레드 스케줄링 - 스레드의 갯수가 코어의 수보다 많을 경우에 스레드를 어떤 순서에 의해 동시성으로 실행할 것인가에 대한 계획. - 아주 짧은 시간 스레드의 run 메소드를 번갈아가면서 실행한다. 우선순위(priority) 방식 - 우선순위가 높은 스레드가 실행상태를 더 많이 가져감. - 객체에 우선순위를 부여하여 개발자가 제어가능. - 1부터 10까지 우선순위, 높으면 먼저 실행 thread.setPriority(우선순위); 우선순위 상수 : Thread.MAX_PRIORITY(10), Thread.NORM_PRIORITY(5..
프로세스와 스레드 프로세스 운영체제에서는 실행중인 하나의 어플리케이션을 프로세스라고 함. 운영체제로부터 실행에 필요한 메모리를 할당받아 어플리케이션의 코드를 실행. 스레드 프로세스를 이루는 코드의 실행흐름. 하나의 스레드는 하나의 코드 실행흐름임. 멀티 프로세스 서로 독립적. 하나의 프로세스에서 오류가 발생하더라도 다른 프로세스에 영향을 미치지 않음. 멀티 스레드 하나의 프로세스 내부에 존재하기 때문에 하나의 스레드가 예외를 던지면 프로세스 하나가 아예 동작하지 않을 수 있음 -> 예외 처리 중요. 메인 스레드 자바 어플리케이션은 메인스레드가 main 메소드를 실행하면서 시작함. 스레드의 생성 1. Thread 클래스로부터 직접 생성 Thread thread = new Thread(Runnable tar..
Strategy 패턴 - 여러 가지의 알고리즘을 하나의 추상적인 접근점을 만들어서 접근점을 통해 교환 가능하도록 구성하는 자바의 디자인 패턴 - 주로 게임 개발에서 무기를 교체하거나 장비를 교체하거나 할 때 사용한다고 한다. Strategy 패턴을 이해하기 위해서는 두가지를 면저 알아두어야 한다. 1. 인터페이스 2. 델리게이트 인터페이스 - 인터페이스는 추상적인 어떤 것이다. 칼, 검, 활의 추상적인 어떤 것은 무기가 될 것이고, 신발, 바지, 상의의 추상적인 어떤 것은 장비가 될 것이다. 다른 의미로는 굉장히 의미가 다양하게 쓰이는 언어라고 생각이 들어 Strategy 패턴에서 사용하고 있는 의미로만 설명되었다. 델리게이트 - delegate(위임하다, 떠넘기다) 라는 영어단어로 개발 영역에서 많이 ..
위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. cl..
전화번호 목록 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 입출력 예제 phone_book return [..
쇠막대기 문제 설명 여러 개의 쇠막대기를 레이저로 절단하려고 합니다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자릅니다. 쇠막대기와 레이저의 배치는 다음 조건을 만족합니다. - 쇠막대기는 자신보다 긴 쇠막대기 위에만 놓일 수 있습니다. - 쇠막대기를 다른 쇠막대기 위에 놓는 경우 완전히 포함되도록 놓되, 끝점은 겹치지 않도록 놓습니다. - 각 쇠막대기를 자르는 레이저는 적어도 하나 존재합니다. - 레이저는 어떤 쇠막대기의 양 끝점과도 겹치지 않습니다. 아래 그림은 위 조건을 만족하는 예를 보여줍니다. 수평으로 그려진 굵은 실선은 쇠막대기이고, 점은 레이저의 위치, 수직으로 그려진 점선 화살표는 레이저의 발사 방향입니다. 이러한 레이저와 쇠..