자바 128

두가지 유형의 자바 예외처리

1. 코드public static void main(String args[]){method 1();} statci void method1(){try{throw new Exception(); // 일부러 예외처리}catch (Exception e){System.out.println("method1 메서드 내에서 예외가 처리되었습니다");e.printStackTrace();}}} 결과method1메서드 내에서 예외가 처리 되었습니다.java.lang.Exception at javas.javas.method1(javas.java:12) at javas.javas.main(javas.java:8) 2. 코드public static void main(String args[]){try{method1();}catch..

JAVA/예외처리 2016.12.21

자바 예외처리

1. try - catch -finally 문try{// 예외가 발생할 가능성이 있는 문장들을 넣는다.} catch (Exception e){//예외처리를 위한 문장을 적는다.} finally{// 예외 발생여부에 관계없이 항상 수행되어야 하는 문장들을 넣는다.} 2. 메서드 예외 처리 메서드에 예외를 선언하려면, 메서드의 선언부에 키워드 throws를 사용해서 메서드내에서 발생할 수 있는 예외를 적어주기만 하면 된다.(예외가 여러개일 경우에는 , 쉼표로 구분한다.) void method() throws Exception1, Execption2, ... ExceptionN{} 이 메서드를 사용하려는 사람은 이메서드를 사용하기 위해서 어떤한 예외들일 처리되어야 하는지 쉽게 알수 있다. ( 자바가 가지는 장..

JAVA/예외처리 2016.12.21

멀티 스레드

멀티 쓰레딩의 장점- CPU의 사용률을 향상시킨다.- 자원을 보다 효율적으로 사용할 수 있다.- 사용자에 대한 응답성이 향상된다.- 작업이 분리되어 코드가 간결해진다. Thread 클래스 vs Runnable 인터페이스Thread 클래스를 사용하는 방법과 Runnable 인터페이스를 구현하는 방법 두가지가 있다.- Thread클래스를 상속받으면 다른 상속이 불가능 하기에 대체로 Runnable인터페이스를 사용한다. - Runnable 인터페이스를 구현하는 방법이 재사용성이 높고 코드의 일관성을 유지할 수 있는 장점이 있다.- Runnable 인터페이스는 run()메서드만 정의되어있는 간단한 인터페이스이다.- Thread 클래스를 상속받으면, Thread 클래스의 메소드를 직접 호출할 수 있지만 .Runn..

JAVA/Thread 2016.12.21

JAVA 스레드 스케줄링

스레드 스케줄링 # 스레드 스케줄링에는 크게 선점형과 협력형 두 가지가 있다. 선점형 스레드 스케줄러- 선점형 스레드 스케줄러는 스레드에게 공평하게 분배된 CPU 시간이 소진되었을 때, 스레드를 중지시키고 다른 스레드에게 CPU 제어권을 넘겨주는 일을 결정한다. 협력형 스레드 스케줄러- 협력형 스레드 스케줄러는 CPU 제어권을 다른 스레드에게 넘겨주기 전에 실행 중인 스레드가 스스로 실행을 중단 할때 까지 기다린다.- 협력형은 기아현상이 일어 날 수 있다. 모든 자바 가상머신은 우선순위에 따른 선점형 스레드 스케줄링 방식의 사용이보장된다.(선점형 스레드는 우선순위가 높은 스레드를 먼저 실행시키는 등의 문제로 인해 다른 스레드들은 기아현상에빠질 수도 있다. 잘 사용해야 한다.)-> 우선순위가 높은 스레드들..

JAVA/Thread 2016.12.21

Thread 동기화 문제

Thread 동기화 문제스레드는 중앙의 리소스풀로 부터 빌린다. 스레드는 메모리, 파일 핸들, 소켓 등의 리소스를 공유하여 프로그램을 좀 더효율적으로 만단ㄷ. 두 스레드가 동시에 같은 리소스를 사용하지만 않는다면 멀티 스레드 프로그램이 각 프로스스가별도의 리소스를 유지하는 멀티 프로세스 프로그램보다 훨씬 효율적이다.그러나 언제 어느 문장이 실행될지 몰라 결과의 순서를 예측할 수 없고, 자원을 공유하고 있을 경우 데드락 현상이 발생할 수 있다.스레드에 동일자원 접근에 대해 배타적인 접근을 할당해 줄 방법은 Synchronized를 명시해주는 방법이다.예제)Run(){System.out.println(result);} Thread.start() 진행 시 System.out.println 자원을 서로 공유하기..

JAVA/Thread 2016.12.21