JAVA/자바 스레드 기초 (4) 썸네일형 리스트형 04. 스레드 동기화 스레드 동기화의 필요성 멀티스레드 프로그램이 실행될 때, 다수의 스레드가 공유 데이터를 동시에 접근하는 경우가 발생한다. 특히 다수의 스레드가 동시에 공유 데이터의 값을 변경시키는 경우, 공유 데이터의 값이 정상적으로 변경되지 않는다. 공유 데이터를 동시 접근하는 여러 스레드에 의해 공유 데이터의 값이 비정상적으로 유지되지 않도록 스레드의 실행을 제어하는 기술을 스레드동기화(thread synchronization)라고 부른다. 자바의스레드 동기화에는 2가지 방법이 있다. 1) synchronized로 동기화 블록 지정 2) wait() - notify() 메소드로 스레드 실행 순서 제어 멀티스레드의 동시접근을 순차화하면 출력이 섞이는 문제를 해결할 수 있다. 자바 스레드 동기화를 위한 synchroni.. 03. 스레드 종료 스레드의 종료는 스스로 종료하는 경우와 다른 스레드에 의해 강제 종료되는 경우가 있다. 스스로 종료했든 강제 종료되었든 종료된 스레드를 다시 살릴 수는 없다. 원한다면 스레드 객체를 다시 생성하고 start()를 호출하여 스레드를 시작시켜야 한다. 스스로 종료 스레드는 run()메소드가 종료하거나 리턴하는 경우 종료된다. 강제 종료 한 스레드가 다른 스레드를 강제로 종료시키고자 하면, 종료시키고자 하는 스레드 객체의 interrupt() 메소드를 호출하면 된다. main()에 TimerThread 스레드를 생성하고, 강제로 종료시키기 위해서 th.interrupt()를 호출한다. 그 결과 th를 가리키는 TimerThread 스레드에 InterruptedException 예외가 발생한다. TimeThre.. 02. 자바 스레드 만들기 자바 스레드를 만드는 방법은 2가지가 있다. 1) Thread 클래스 이용 2) Runnable 인터페이스 이용 Thread 클래스로 스레드 만들기 Thread 클래스의 경로명은 java.lang.Thread이며, Thread 클래스를 상속받아 새로운 스레드 코드를 만든다. Thread 클래스는 스레드를 만들고 유지 관리하기 위해 많은 메소드를 제공한다. Thread() : 스레드 객체 생성 Thread( Runnable target ) : Runnable 객체인 target을 이용하여 스레드객체 생성 Thread( String name ) : 이름이 name인 스레드 객체 생성 Thread( Runnable target, String name ) : Runnable 객체를 이용하며, 이름이 name인 .. 01. 멀티태스킹 멀티태스킹이란? 멀티태스킹(multitasking)이란 멀티+태스킹의 합성어로 다수의 작업을 동시에 처리하는 것을 말한다. 멀티태스킹은 컴퓨터 기술용어로 여러 프로그램의 코드(작업, 태스크)가 동시에 실행되는 것을 말한다. 멀티태스킹 프로그램 사례 하나의 프로그램이 하나의 작업(태스크)만 하는 경우가 대부분이지만, 하나의 프로그램이 여러 작업(태스크)를 동시에 실행하는 경우가 있다. [미디어 플레이어, 테트리스 게임 등 의 멀티태스킹] 하나의 프로그램에 여러 작업을 구현하는 멀티 태스킹을 이용하면, 실행 중에 여러 작업을 동시에 실행시켜 프로그램이 효율적으로 실행되게 한다. 스레드와 운영체제 스레드(thread)란 운영 체제에 의해 관리되는 하나의 작업 혹은 태스크를 말하며, 다수의 스레드를 동시에 실행.. 이전 1 다음