저번 시간에 이어서 이번에는 Runnable 인터페이스를 구현한 후 Thread 객체를 통해 실행하는 방법을 알아보도록 하겠습니다.2. Runnable 인터페이스 구현을 통한 방법제목에서처럼 Runnable은 인터페이스 입니다.Runnable 인터페이스에는 run()이라는 추상메서드 하나만 존재합니다.이 Runnable 인터페이스를 가지고 어떻게 다중상속을 이용하여 스레드를 실행 시킬까요?Runnable.javapublic interface Runnable { public abstract void run();}자세한 실행 방법은 다음과 같습니다.Runnable 인터페이스 구현구현한 Runnable 객체를 생성하여 Thread에게 전달Thread start()먼저 Runnable 인터페이스를 구현합니..
자바[Java]
2017. 10. 30. 20:03
[Java]스레드(Thread) - [2] 스레드 생성과 실행
메인 스레드(Main thread)자바 어플리케이션에서 main() 메서드는 프로그램의 시작점 입니다.그리고 main() 메서드 또한 스레드에 의해 실행되는데 이 스레드를 main 스레드라 합니다.모든 자바 어플리케이션은 JVM에서 동작하는데 main() 메서드가 있는 클래스를 찾고 메인 스레드를 생성한 후 메인 스레드에서 main() 메서드를 실행하는 것입니다.(평소에 공부 또는 테스트용 로직으로 main() 메서드에서 시작해서 main() 메서드에서 종료되는 어플리케이션의 처리 흐름)자바 어플리케이션 자체는 운영체제에게 자원을 할당받은 프로세스 입니다.컴파일된 자바 클래스는 JVM 위에서 동작하죠.JVM은 프로그램의 시작점인 main() 메서드를 찾아서 메인 스레드를 생성하고 메인 스레드의 run()..
자바[Java]
2017. 10. 30. 19:46
[Java]스레드(Thread) - [1] 스레드란?
스레드(Thread)스레드는 경량 프로세스(Light-Weight) 라고도 하며 하나의 프로세스 안에서 여러개의 흐름 을 말합니다.그 여러개의 흐름이 여러개의 실 가닥 같다고 하여 스레드라고 불리게 되었죠.프로세스란 실행중인 프로그램이고 운영체제에게 메모리를 할당받아 실행합니다.윈도우의 작업 관리자를 보면 현재 kakaoTalk 라는 프로그램이 실행중입니다.이것을 프로세스라고 하며 메모리를 78,124KB 할당받아 실행중인것을 알 수 있습니다.그렇다면 왜 스레드가 필요한 것일까요??예를 들어 메이플 스토리라는 게임이 있습니다.이 게임은 사냥도 하면서 동시에 배경음악을 실행시키고 또 채팅까지 할 수 있습니다.만약 스레드 없이 어느 한 시점에 한가지 흐름으로 즉 사냥만 또는 배경음악만 또는 채팅만 한다면 어..
Windows
2017. 10. 29. 23:30
[Windows] hosts 파일로 도메인네임 맵핑시키기
도메인 네임우리는 브라우저를 통해 웹사이트에 접속하는 경우 보통 서버의 IP 주소 보다는 외우기 쉬운 도메인네임을 통해 접근합니다.예를들어 현재 네이버의 ip 주소가 202.179.177.22 라고 했을 때(nslookup 명령어를 통해 확인) 우리는 해당 주소를 통해서 접근할 수도 있지만 그보다 더욱 외우기 쉽고 사람이 이해하기 쉬운 www.naver.com 이라는 도메인 네임으로 접근하는 것입니다.(더 정확히 말하자면 www.naver.com 는 naver.com 이라는 도메인 하위에 속한 웹서버의 호스트 네임입니다.)이것이 가능한 이유는 DNS(Domain Name System) 라는 서비스 덕분인데 DNS는 도메인 네임에 해당하는 서버의 IP주소를 알려주는 서비스입니다.그 역할을 하는것은 DNS ..
Windows
2017. 10. 29. 23:04
[Windows]윈도우 출력 결과 추출 findstr 명령어
findstr리눅스에는 | grep (파이프와 그렙)을 통해 출력 결과를 추출해 낼 수 있습니다.윈도우에도 비슷한 기능이 있는데요.findstr 명령어 입니다.윈도우 서버 관리자가 아니더라도 개발자라면 가끔 netstat 명령어나 tasklist 명령어 등을 통해 현재 내 운영체제의 일부 기능 상태를 확인하는 경우가 있습니다.그러나 출력결과의 수많은 문자열들은 우리의 눈을 아프게 하므로 내가 원하는 결과만 추출하여 확인할 필요가 있습니다.사용법은 다음과 같습니다.tasklist를 통해 프로세스 목록을 확인하는데 "cmd" 프로세스만 확인하고자 할 때 다음과 같이 사용합니다.tasklist | findstr cmdtasklist로 나온 결과 목록들을 |(파이프 : \ Shift 눌었을 때 나오는 문자) 를..
전산학개론
2017. 10. 29. 22:41
프로그램, 프로세스, 프로세서 차이 [2]
프로세스프로세스란 실행중인 프로그램 입니다.실행중이라는 의미는 간단히 말해서 보조기억장치에 저장되어 있던 프로그램이 주기억장치인 메모리 (RAM)에 적재(Load) 되어있고 프로세서가 실행하고 있거나 실행 예정에 있는 상태를 의미합니다.C드라이브 같은 보조기억장치에 기록 되어 있는 프로그램은 아무일도 하지않는 단순히 용량만 차지하고 있는 수동적인 녀석입니다.프로그램은 명령어 덩어리라고 했었죠?예를들어 println("안녕"); 이라든가 int a = 3 + 5; 또는 롤 프로그램에서의 자이라.moveToXY(300,200); 처럼 말이죠.그런데 이런 명령어를 실제로 연산해주는 것은 누구일까요??바로 CPU(중앙처리장치, Central Processing Unit) 라고 하는 녀석이죠.CPU가 명령어들을 ..
전산학개론
2017. 10. 29. 22:29
운영체제의 목적
운영체제의 목적운영체제는 사용자 대신 하드웨어와 데이터 등의 자원을 관리해주고 시스템의 성능을 높여주는 것이 목적입니다.운영체제의 목적은 네 가지로 나누었을때는 다음과 같습니다.처리 능력(Throughput) 향상 : 어떤 일정한 단위 시간 내에 처리할 수 있는 일의 양. 같은 시간이면 처리할 수 있는 일의 양이 많은 것이 좋겠죠?반환 시간(Turn-around time) 최소화 : 하나의 작업을 시작한 시간에서부터 결과를 얻을 때까지 걸린 시간. 게임을 실행하라는 작업을 내렸을때 빨리 실행이 완료되는 것이 좋을 것입니다.사용 가능도(Availability) 향상 : 시스템을 이용하려 할 때 얼마나 빨리 사용할 수 있는가를 의미합니다. 게임을 하다가 노래를 들으려는데 운영체제가 자원 관리를 못해서 메모리..