2018년 3월 26일 월요일

패스트 캠퍼스 JAVA 웹 프로그래밍 마스터 3일차(Thread, IO)

  • Thread
    • 하나의 객채에 synchronized 가 붙은 메소드가 다수라면 먼저 들어온 쓰레드가 실행되고 나머지 쓰레드는 대기한다.(synchronized가 일부분이라면 synchronized가 붙은 메소드끼리만 대기)
    • 쓰레드가 실행됐을때 run상태와 실행가능 상태를 실행한다.
    • synchronized가 들어가 있는 메소드끼리 lock이 생성되어서 lock에 있는 메소드중에서 호출한 메소드 순서대로 실행된다.
    • Thead 를 직접 상속 받은 경우(class명 extends Thread) start()를 메소드를 실행하면 run()메소드를 실행한다. 하지만 (class명  implements Runnable)으로 구현한 경우 thread객체를 생성 후 작성한 class를 넣어줘서 실행한다.
    • thread는  자신이 Runnable 객체를 가지고 있다면 Runnable run()메소드를 호출하고 아니면 run()메소드를 호출한다.
    • 클래스안에 공유객체가 있을시 서로 동시에 실행 됐을때 문제가있는 메소드 안에 synchronized 로 객체를 동기화 시킨다.
    • wait와 notifyAll로 순서를 제어할수 있다.
  • IO
    • read() 메소드는 byte가 아닌 int로 선언되어있다. EoF를 만났을때 값을 -1 값을 리턴하는데 저장할 곳이 없기때문이다. 
    • 운영체제는 512, 1024btye씩 읽고 사용한다.
  • 직렬화
    • 필드로 구현된 것들도 직렬화를 구현하고 있어야 한다.
    • 기본 타입은 직렬화가 가능하다.
  • freamework는 작업한것을 가져다가 실행해주는 거고 library는 작업자가 가져다 쓰는것이다.
Share:

0 개의 댓글:

댓글 쓰기