목록분류 전체보기 (249)
지우너
코드트리 90xp 정보처리기사실기 강의김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성프린트 하다가 잘못된 문서를 뽑을 경우 급하게 프린트를 멈춰야 하는 경우가 있다.Queue(ConcurrentLinkedQueue)에 들어간 문자를 순서대로 출력하는 Runnable을 만든다.main에서 입력받은 문자를 해당 스레드의 Queue에 넣어줌. 처음에는 volatile boolean work=true; 라는 변수를 만들어서 종료해야할 때 해당 플래그를 false로 바꿔줬다→반응성이 좋지 않음. 프린트가 된 다음 작업을 멈추게 됨interrupt()를 하면 즉시 작업을 멈춤. while에서 Thread.interrupted()체크를 하면 반응성을 높여줄 수 있음.yield() 다른 스레드한테 cpu를 양보..
문제https://www.codetree.ai/missions/8/problems/c-o-w?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 코드#include #define MAXLEN 100000using namespace std;char str[MAXLEN];long long lC[MAXLEN];// 왼쪽에서 부터 C의 개수long long rW[MAXLEN];// 오른쪽에서부터 W의 개수int main() { int n; cin >> n; for(int i=0; i..
문제https://www.codetree.ai/missions/8/problems/three-non-adjacent-numbers?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 코드#include #define MAX_N 100000using namespace std;int num[MAX_N];int lMax[MAX_N]; // i까지의 값 중 최대를 왼쪽에서부터 저장int rMax[MAX_N]; // i까지의 값 중 최대를 오른쪽에서부터 저장int main() { int n; ..
코드트리 90xp 정보처리기사실기 강의김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성join()해당 스레드가 작업을 끝낼 때까지 기다리게 하는 함수.join(time)이렇게 time을 매개변수로 넣어주면 TIMED_WAITING 상태가 된다. join()을 하면 WAITING상태가 됨.join을 쓰는 이유sleep을 이용해 어떤 스레드의 작업이 끝나기를 기다려도 되지만, 작업이 어느 정도의 시간이 걸릴지 예측하는 것은 어렵다.인터럽트를 사용하면 대기 중인 (sleep이나 join 중인) 스레드를 바로 깨울 수 있다(RUNNABLE이 됨). 스레드의 인터럽트 상태를 단순히 확인만 하는 용도라면 isInterrupted()를 사용하면 된다.인터럽트 상태를 직접 체크할 때는 Thread.inerrupt..
문제https://www.codetree.ai/missions/8/problems/taking-a-taxi-in-the-middle-of-the-marathon?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.www.codetree.ai 코드#include #define MAX_N 100000using namespace std;pair checkPoint[MAX_N];int lDist[MAX_N];int rDist[MAX_N];// 개발자 A가 체크포인트 한 개를 건너 뛰어서 마라톤을 완주하려고 할 때, 최소 거리를..
코드트리 90xp Grid CompressionSet과 Unordered_map을 이용하여 좌표를 압축하는 문제를 2개 풀었다. 정보처리기사실기 강의김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 스레드 기본 정보mainThread = Thread[#1,main,5,main]ThreadId, getName, getPriority, getThreadGroup(해당 스레드를 생성한 스레드가 부모 스레드로 나옴)생명주기mainThread.getState() = RUNNABLE;NEW, RUNNABLE, [WAITING, TIMED_WAITING, BLOCKED], TERMINATED체크 예외 재정의Runnable을 구현하면 예외를 던질 수 없다. 상속을 받으면 자식은 부모가 던진 예외의 자식만 던질 수..