본문 바로가기

NIO

(2)
자바 NIO 정리 #1 개요 ("JAVA는 느리다"라는 말이 생긴 이유와 개선책, 성능이 좋아지는 입출력 포인트 2가지) "자바는 느리다" - 어디가 느릴까? 진짜 느릴까? "자바는 느리다." 라는 말은 어느 정도 프로그래밍을 해온 개발자들이라면 들어봤을 법한 말이다.그런데 자바가 어디가 느리고 왜 느린지, 그리고 얼마나 느린지에 대한 답을 하는 개발자는 많지 않다.이번 포스트부터 4개 정도의 포스트로 연재할 내용은 자바는 어떠한 이유로 느리고 그것을 개선한 방법은 무엇인지에 대한 것이다.- 자바는 어디가, 왜 느릴까?일단 자바는 C/C++과 달리 포인터로 1. 직접 메모리를 관리하고 운영체제 수준의 2. 시스템 콜을 직접 사용할 수 없다. JVM이라는 프로세스 위에서 동작하는 추상화된 비교적 고수준의 언어이기 때문에 자바는 느리다.기타 GC(Garbage Collection)의 메모리 점유 문제등 느린 이유는 더 많이 있..
Thread를 올바르게 생성, 시작, 중단하는 방법(feat. daemon thread와 자바런타임 메모리 공유) 쓰레드(Thread)를 올바르게 생성, 시작하는 방법 쓰레드, 프로세스가 무엇이고 어떻게 생성하는지는 다른 포스트에 이미 있으니 생략한다.http://jeong-pro.tistory.com/71?category=773575 ▶ 쓰레드를 생성할 때는 Runnable 인터페이스를 상속한 Runnable객체를 생성시키는 방법을 사용해라.쓰레드를 생성하는 일반적인 방법으로 두 가지가 있다. 1. Thread 클래스를 상속받고 run()메소드를 오버라이딩해서 정의한 후 실행하는 방법 2. Runnable 인터페이스를 확장해 run()메소드를 구현해 정의한 후 실행하는 방법왜 Runnable 인터페이스를 확장하는 것이 좋을까?그 답은 상속과 인터페이스에 있다. 자바 다중상속을 지원하지 않기 때문에 상속은 하나의 클..