본문 바로가기

자바스레드

자바 쓰레드(Thread) - 싱글쓰레드(single thread)와 멀티쓰레드(multi thread) 예제 2 1. 첫번째 예제 : 싱글쓰레드 javax.swing을 이용해서 입력받는 패널을 띄운다. 입력 값을 받으면 값을 콘솔에 찍고 그 다음에 for문을 돈다. 이 이야기는 입력 받은 값이 없으면 프로그램이 거기서 멈추고 for문을 타지 않는다. 전형적인 싱글쓰레드다. 2. 첫번째 예제 : 멀티쓰레드2 위의 싱글쓰레드에서 for문을 따로 뺐다. 그리고 Thread를 상속받아서 쓰레드로 만들었다. 이제는 input 패널이 뜨더라고 for문은 돈다. 멀티쓰레드다. 3. 두번째 예제 : 멀티쓰레드 위의 첫번째 예제에다가 10초동안 input패널에 값을 입력하지 않았을때 프로그램을 종료하도록 했다. 이를 위해서 메인메소드가 있는 클래스에 inputCheck라는 static boolean값을 생성하였다. 자식쓰레드중 f.. 더보기
자바 쓰레드(Thread) - 멀티 쓰레드(Multi-Thread) * 스레드 기반 멀티 태스킹에서는 스레드가 가장 작은 코드 단위이다. * 즉, 단일 프로그램이 두개 이상의 태스크(task)를 동시에 수행할 수 있다는 것을 의미(멀티쓰레딩) * 프로그램에서 발생하는 유휴시간(idle time)을 이용할 수 있는 효율적인 프로그램을 개발 가능 * 대부분의 I/O장치는 CPU보다 느리기 때문에, 이들을 사용하는 프로그램은 많은 시간을 이들로부터 정보를 주고 받는 과정에서 소비한다. * 멀티 쓰레딩을 이용하면 이러한 유휴시킨에 다른 태스크를 수행할 수 있다. * 멀티 쓰레딩이 지원되지 않던 시절에는 이터럽트 등의 편범을 이용해서 프로그래밍 * 자바에서는 언어 차원에서 스레드를 지원한다. * 모든 프로세스는 적어도 하나의 실행되는 스레드를 갖고 있어야 하며, 프로그램이 시작 .. 더보기
자바 쓰레드(Thread) - 멀티 태스킹 (Multi-Tasking) 1. 멀티 태스킹 - Multi-Tasking (= 멀티프로세스와 거의 유사함) * 하나의 CPU가 여러 개의 프로세스를 교대로 수행하는것 * 각각의 일을 전담하는 해당 프로그램들이 동시에 실행되고 있다는것을 의미 * 일반적으로 멀티 태스킹을 위해서는 여러 개의 프로세스가 메모리 상에서 동시에 실행 * 현재 운영체제들이 취한 방식은 멀티 프로세스 시스템이다. * 멀티 프로세스 시스템에서 각 프로세스는 동시에 실행되는 것처럼 보이지만, CPU가 하나이기 때문에 , 실은 실행 시간을 잘게 나누어서 각 프로세스들이 돌아가면서 CPU를 점유하고 있는 것이다. * 프로세스간의 이런 CPU의 점유작업을 ProcessScheduling이라고 한다. * 프로세스는 실행중인 프로그램이다. * 스케줄러에 의해 처리되는 가.. 더보기