본문 바로가기

전체 글

(229)
깊이 우선탐색 package main01; import java.util.ArrayList; import java.util.List; public class Main { int[][] adj = { {1, 9}, {0, 2, 3, 5, 7}, {1, 3, 4, 5}, {1, 2}, {2}, {1, 2, 6}, {5}, {1, 8, 9}, {7}, {0, 7} }; List visited; public static void main(String[] args) { new Main().dfsAll(); } void dfsAll() { visited = new ArrayList(); for (int i = 0; i < adj.length; i++) { visited.add(false); // visited 모두 false로 ..
[스레드] 3. 스레드 우선 순위 -> 동시성(Concurrency) : 멀티 작업을 위해 하나의 코어에서 멀티 스레드가 번갈아 가며 실행하는 성질 -> 병렬성(Parallelism) : 멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질 스레드 스케쥴링 -> 스레드의 개수가 코어의 수보다 많을 경우 * 스레드를 어떤 순서로 동시성으로 실행할 것인가 : 스레드 스케쥴링 * 스레드 스케쥴링에 의해 스레드들은 번갈아 가면서 그들의 run() 메소드를 조금씩 실행 -> 자바의 스레드 스케쥴링 * 우선순위(Priority)방식 : 코드로 제어가능. 우선순위가 높은 스레드가 실행상태를 더 많이 가지도록 스케쥴링 * 순환할당(Round-Robin)방식: 코드로 제어할 수 없음. 시간할당량(Time Slice)을 정해서 하나의 스레드..
[스레드] 2. 작업 스레드 생성과 실행 - 2 Thread 하위 클래스로부터 생성 class WorkerThread extends Thread { @Override public void run() { // 스레드가 실행할 코드; } } Thread thread = new WorkerThread(); thread.start(); Thread thread = new Thread() { @Override public void run() { // 스레드가 실행할 코드; } }; thread.start(); 예제 package main; import java.awt.*; public class BeepThread extends Thread { @Override public void run() { // 비프음을 5번 반복해서 소리나게 하는 작업 Toolkit ..