반응형

프로그래밍 정리/자바 97

Multi Thread(멀티쓰레드)

Multi Thread?- Multi-Processing-> 여러 개의 CPU에서 동시에 여러 개의 프로세스가 수행-> ex) Dual CPU- Multi-tasking-> 하나의 CPU에서 동시에 둘 이상의 작업을 수행-> ex) 한글을 사용하면서 동시에 웹 브라우저를 실행시킴- Multi-Threading-> 하나의 프로세스 내에서 여러 개의 쓰레드가 작업을 수행-> ex) 스타크래프트를 하면서 정찰과 자원획득, 건물 건축을 동시에 수행=> 모든 활동들이 하나의 쓰레드로 작동함 - 필요성-> 동시에 두 가지 이상의 작업을 수행하기 위하여=> 동시에 for문을 2개 이상 실행해야 할 때- 문제점-> 여러 개의 쓰레드가 하나의 자원을 동시에 사용할 때 발생=> 자료를 동시에 요청할 때 bottleneck..

Thread Join - 쓰레드가 작동할 경우 끝날 때까지 기다려주고 다음 명령문을 실행.

Join- 자바의 쓰레드가 끝날때까지 기다려주는 join() 메소드-> 자바의 쓰래드는 게임과 네트워크 프로그래밍에서 중추적인 역할을 담당-> 쓰레드가 끝날 때까지 기다려줌. ============================================================================================== public class AddThread extends Thread{int a;int b;int sum;public AddThread(int x, int y) {// TODO Auto-generated constructor stuba = x;b = y;}@Overridepublic void run() {// TODO Auto-generated method stubf..

Runnable, NotRunnable, Dead

Runnable - Runnable 인터페이스를 구현-> run() 메소드를 반드시 재정의해야 함.-> run() 메소드를 재정의한 클래스를 Thread클래스의 매개변수로 삽입 ================================================================================================================= import java.awt.Frame; class SoloFrame extends Frame implements Runnable{private int number = 0;public SoloFrame(int n) {// TODO Auto-generated constructor stubnumber = n;Thread t = new..

쓰레드(Thread)

프로세스와 쓰레드- Process-> 실행중인 프로그램=> ex) word, 스타크래프트 Thread-> 프로세스 내부에서 실행되는 일련의 작업=> ex) save or print, SCV or Hydra 자바의 Thread란?-> 실행중인 프로그램 내의 순차적 제어흐름들-> 자바 프로그램=> main 쓰레드가 main() 함수 수행=> finalize 쓰레드가 finalize() 함수 수행-> 다중 쓰레드 프로그램=> 동시에(concurrently) 여러 가지 작업을 할 수 있음-> 이점=> 실행속도=> 빠른 반응 시간=> 동시성을 갚는 프로그램을 쉽게 작성-> 다중 프로세스와 다중 쓰레드=> 성능과 크기=> 통신의 효율성 Thrad의 상태- 쓰레드의 생성-> 쓰레드의 시작 - Runnable-> 쓰레..

인터페이스에서 사용할 수 있는 멤버 변수

- 인터페이스는 순수하게 추상 메서드로 이루어진 클래스. 인터페이스를 계속해서 클래스라고 칭하는 것은 인터페이스도 컴파일하면 .class 파일로 되기 때문. - 인터페이스는 추상 메서드로 이루어져 있지만 멤버 변수로 스태틱 상수 변수(Static Constant Variable)는 포함할 수 있음. - 상수 변수를 선언하는 예-> final int TOP = 1000; - 상수(Constant)는 일반적으로 바꿀 수 없는 수를 말함. 그리고 상수 변수(Constant Variable)는 변수이지만 단 한번의 초기화를 거친 후에는 절대 그 값을 변경할 수 없는 특징이 있음. 만약 상수 변수를 선언한 후 다른 값을 할당하면 에러 발생. - 상부 변수는 단 한 번의 할당을 함.-> final int TOP =..

일반적인 인터페이스의 구조

- 인터페이스를 만들기 위해서는 class라는 키워드 대신에 interface라는 키워드를 사용.그리고 인터페이스 내에는 몸체가 없는 추상 메서드만을 추가시키면 됨. ============================================================================================================ public interface IRemoteControl {void powerOn();// 추상 메서드void powerOff();// 추상 메서드void channelUp();// 추상 메서드void channelDown();// 추상 메서드/* * public abstract void powerOn();// 추상 메서드 * public abstr..

인터페이스란?

- 인터페이스(Interface)란 골격만 가지고 있는 클래스.골격만 가지고 있다는 말은 순수하게 몸체 없는 메서드의 집합으로 이루어져 있다는 것을 의미.인터페이스 내에는 구현된 메서드가 아예 들어갈 수 없음.구현 자체가 전혀 없는 순수한 추상메서드로만 이루어져 있는 클래스가 바로 인터페이스(Interface) - 인터페이스의 정의-> 골격만 가지고 있는 클래스-> 몸체 없는 메소드(추상 메서드)로만 이루어진 클래스 - 추상 메서드를 포함한다는 측면에서 본다면 추상 클래스와 비슷한 면을 가지고 있음. 추상 클래스는 클래스의 일부분이 추상 메서드로 이루어져있지만, 인터페이스는 전체가 구현되지 않은 추상 메서드로 이루어져 있는 클래스. - 인터페이스(Interface)의 주의 사항-> 인터페이스도 클래스의 ..

System.in

- 표준 입출력 스트림은 미리 생성된 스트림이기 때문에 사용자가 직접 생성할 필요는 없음. 다른 언어에서도 표준 입출력 스트림은 미리 개설해 두는 것을 기본으로 함. - System.in은 사용 방법은 단순함. 단순히 read()만 호출하면 됨. System.in.read()를 호출했을 때 스트림으로 데이터가 들어올 때까지 작업을 진행하지 않고 대기하는 것이 특징.임의의 데이터를 입력한 후 엔터키를 누르면 그 때 read()가 반응하게 됨. ============================================================================================================ import java.io.IOException; public class..

표준 출력

- 스트림 중에서 기본적으로 가장 많이 사용되는 스트림은 바로 입출력 스트림.표준 입출력 스트림의 종류는 다음과 같이 java.lang 패키지의 System 클래스에 스태틱 멤버로 선언되어 있으면서 자동으로 초기화되기 때문에 단순히 System.in 또는 System.out 그리고 System.err와 같이 사용하기만 하면 됨. - System 클래스의 표준 입출력 스트림 멤버-> package java.lang;public class System{public static PrintStream out;public static InputStream in;public static PrintStream err;// 중간 생략}-> 이 중에서 PrintStream out은 콘솔 화면에 문자열을 출력하기 위한 용..

반응형