자바의 정석 정리 썸네일형 리스트형 자바의 정석 - 13.5 쓰레드 우선순위 13.5.1 쓰레드 우선순위 작업 중요도에 따라 우선순위 설정 가능 특정 쓰레드가 더 많은 작업시간을 갖도록 할 수 있다 멀티 쓰레드에서는 우선순위에 따른 차이가 거의 없다 단지, 더 많은 실행시간과 실행기회만 갖는것 13.5.2 쓰레드 우선순위 지정 void setPriority(int newPriority) //우선순위 지정 int getPriority() //우선순위 반환 class A{ public static void main(String[] args){ ThreadEx1 t1 = new ThreadEx1(); t1.setPriority(7); } } public class ThreadEx1{ public void run(){} } 💡 main메서드의 우선순위는 기본적으로 5이다. 더보기 자바의 정석 - 13.4 싱글쓰레드와 멀티쓰레드 13.4.1 싱글과 멀티쓰레드 싱글쓰레드 : 하나의 작업 완료시 다른 작업 수행 멀티쓰레드 : 두 개 이상의 작업을 일정 시간 단위로 번갈아 가면서 수행 class A{ public static void main(String[] args){ ThreadEx1 t1 = new ThreadEx1(); t1.start(); String input = JOptionPane.showInputDialog("아무값이나 입력"); System.out.println("입력값:"+input) } } class ThreadEx1 extends Thread{ public void run(){ for(int i=10; i>0; i--){ System.out.println(i); try{ sleep(1000); }catch(Ex.. 더보기 자바의 정석 - 13.3 start()와 run() 13.3.1 run()호출 main메서드에서 run()을 호출하는 것은 쓰레드를 실행하는 것이 아니라 단순히 클래스에 선언된 메서드를 호출하는 것일 뿐 run ---------- main 13.3.2 start() 호출 쓰레드가 작업에 필요한 호출스택(call stack)을 생성한 다음 run()을 호출 호출 스택에 run()이 첫 번째로 올라가게 한다. 1) main메서드에서 start()호출 start ---------- main 2) start()는 새로운 쓰레드를 생성하고, 쓰레드가 작업하는데 사용될 호출스택 생성 start | ---------- | main | 3) 새로 생성된 호출스택에 run()이 호출되어, 쓰레드가 독립된 공간에서 작업 수행 start | ---------- |------.. 더보기 자바의 정석 - 13.2 쓰레드의 구현과 실행 13.2.1 쓰레드 구현방법 Thread 클래스 상속 class A extends Thread{ public void run(){} //오버라이딩 } Runnable 인터페이스 구현 class B implements Runnable{ public void run(){} //구현 } 💡 Runnable인터페이스를 구현하는 방법이 재사용성이 높고 일관성을 유지할 수 있다. 13.2.2 Thread 클래스 구현 및 실행 class ThreadEx1 extends Thread{ public void run(){ System.out.println(getName()); } } public class A{ public static void main(String[] args){ ThreadEx1 t1 = new Thr.. 더보기 자바의 정석 - 13.1 프로세스와 쓰레드 13.1.1 프로세스와 쓰레드 프로세스 : 데이터 + 메모리등의 자원 + 쓰레드 쓰레드 : 프로세스의 자원을 이용하여 실제 작업 수행 💡 하나의 프로세스에 둘 이상의 쓰레드를 가진 것을 멀티쓰레드 프로세스(multi-threaded process)라 한다. 💡 하나의 프로세스가 가질 수 있는 쓰레드의 개수는 제한되지 않으나, 쓰레드가 작업을 수행하는데 개별적인 메모리 공간(호출스택)을 필요로 하기 때문에 프로세스의 메모리의 한계에 따라 쓰레드 수가 결정됨 13.1.2 멀티태스킹과 멀티쓰레딩 멀티태스킹 : 여러개의 프로세스가 동시 실행 멀티쓰레딩 : 하나의 프로세스에서 여러 쓰레드 실행 💡 처리해야 하는 쓰레드의 개수는 항상 코어의 개수보다 많기 때문에 일정시간 여러 작업을 번갈아 가면서 수행(ex.라운드.. 더보기 자바의 정석 - 10.3 java.time 10.3.1 time패키지 time 패키지 내부의 클래스들은 항상 변경된 새로운 객체 반환 즉, 불변성(immutable)을 가짐 항상 새호운 객체가 반환되어서 동시에 여러 쓰레드가 같은 객체에 접근하는 멀티 쓰레드 환경에서 안전함 java.time : 날짜와 시간을 다루는데 필요한 핵심 클래스들을 제공 java.time.chrono : 표준(ISO)이 아닌 달력 시스템을 위한 클래스 제공 java.time.format : 날짜와 시간을 파싱하고, 형식화하기 위한 클래스들을 제공 java.time.temporal : 날짜와 시간의 필드(field)와 단위(unit)를 위한 클래스들을 제공 java.time.zone : 시간대(time-zone)와 관련된 클래스들을 제공 10.3.2 Period와 Dura.. 더보기 자바의 정석 - 10.2 형식화 클래스 10.2.1 DecimalFormat 숫자 데이터를 정수, 부동소수점, 금액 등의 다양한 형식으로 표현 텍스트 데이터를 숫자로 쉽게 변환 double number = 1234567.89; DecimalFormat df = new DecimalFormat("#.#E0"); String result = df.format(number); //12.E6 10.2.2 SimpleDateFormat 추상클래스 DateFormat의 구현체 날짜를 출력할 때 사용 Date d = new Date(); SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat s2 = new SimpleDateFormat("''yy년 MM월 dd일 E요일"); .. 더보기 자바의 정석 - 10.1 날짜와 시간 10.1.1 Calendar 추상클래스(직접 인스턴스 생성 불가) getInstance()로 인스턴스 반환 가능 //국가와 지역설정 Calendar cal1 = Calendar.getInstance(); //Error! Calendar cal2 = new Calendar(); /* getInstance()가 static인 이유는, 인스터스 변수를 사용하거나 인스턴스 메서드르 호출하지 않기 때문이다. */ 💡 getInstance()는 국가와 지역설정을 확인. 태국 : BuddhistCalendar 인스턴스 반환 그 외 국가 : GregorianCalendar 인스턴스 반환 10.1.2 Date와 Calendar간의 변환 Date는 JDK 1.0부터 사용할 수 있지만 대부분 'deprecated'가 됨 1.. 더보기 이전 1 2 3 4 5 6 7 8 ··· 11 다음