자바 Thread 사용법



Thread(스레드)를 이해하기 위해서는 우선 프로세스를 알아야 한다. 프로세스는 하나의 프로그램이라고 보면 된다. 우리는 윈도우에서 음악을 들으며 웹서핑을 할 수 있다. 음악을 플레이 하는 프로그램도 있고 웹서핑을 할 수 있도록 브라우져 프로그램을 실행한다. 이 둘은 각각의 프로세스이다.

윈도우는 멀티프로세스 기반 OS이며 각각의 두 프로그램을 적절한 CPU 분배로 마치 동시에 실행 되는 것과 같다. 스레드는 하나의 프로세스 안에 독립적으로 수행되는 흐름이라고 보면된다. OS 안에 여러 프로세스가 존재하듯이 프로세스 안에는 1개 이상의 스레드가 존재하며 각각의 독립적 기능을 한다.


스레스 사용 방법



자바에스 스레드를 사용하는 방법은 2가지로 나눌 수 있다.

Thread 클래스나 Runnable 인터페이스를 상속 받아 사용할 수 있다.

아래 예제는 상속 받는 방법과 스레드를 생성하는 방법에 대한 예제가 있다.

각각 사용 방법이 다르니 주의해서 보도록 한다.


[Thread를 상속 받은 스레드 클래스]

public class MyThread extends Thread {

@Override

public void run() {

System.out.println("Thread 상속");

}

public static void main(String[] args) {

Thread mt = new MyThread();

mt.start();

}

}


[상속 방법]

public class MyThread extends Thread // Thread 클래스를 상속 받기 때문에 extends 를 사용한다.


[사용 방법]

Thread mt = new MyThread(); 

mt.start(); // 스레드를 시작하는 함수


[Runnable를 상속 받은 스레드 클래스]

public class MyRunnable implements Runnable{


@Override

public void run() {

System.out.println("Runnable 상속");

}

public static void main(String[] args) {

Thread mr = new Thread(new MyRunnable());

mr.start();

}

}


[상속 방법]

public class MyThread implements Runnable // Runnable 인터페이스를 상속 받기 때문에 implements 를 사용한다.


[사용 방법]

Thread mr = new Thread(new MyRunnable()); // Runnable은 Thread의 자식이 아니기 때문에 바로 생성 할 수 없고 이렇게 Thread 객체 생성시 인자로 넣어준다.

mr.start(); // 스레드를 시작하는 함수




반응형

'프로그램 > Java' 카테고리의 다른 글

[java] ByteBuffer 사용법  (0) 2018.06.03
[java] 파일 읽고,쓰기 사용법  (0) 2018.05.30
[java] 함수 가변 인자 사용 방법  (0) 2018.05.25
[java] Random 사용법  (0) 2018.05.24
[java] sleep 사용법  (0) 2018.05.23

자바 함수 가변 인자 사용 방법



java로 프로그램 작성 중 함수 인자를 여러개 받아야 할 경우가 있다. 예를 들어 System.out.printf 함수 이용시 인자 값이 1개 혹은 2,3.. 이상으로 넣는 것 처럼 말이다. 사용자 함수를 만들 때도 이렇게 인자를 여러개 받는 방법에 대해 알아보도록 하겠다.

 

가변 인자 사용 방법



가변 인자사용예는 아래와 같다. 언제나 예제를 바로 보고 실행 해보는 것이 가장 이해가 빠르다. (복사 붙여넣어 테스트 해보자)


public class factor {

static String conString(String... args) {

      String result = "";

      

      for(String str : args){

           result += str ;

      }

      

      return result;

}

public static void main(String[] args) {

String str1 = "Hello";

String str2 = " World";

String str3 = " Welcome";

String str4 = " !!!";

String result = conString(str1, str2, str3, str4);

System.out.println("result : " + result );

}

}


[가변 인자 함수 만드는 방법]

String conString(String... args); // 인자 부분에 ...을 넣어 가변 인자 사용을 알린다. String 형으로 여러개의 인자를 받을 수 있다.


[가변 인자 함수 사용 방법]

String result = conString(str1, str2, str3, str4 ); // String 형 인자를 4개를 넣었지만 4개가 아닌 1,2...5개등 다양하게 테스트 해봐도 함수는 동작 한다.


반응형

'프로그램 > Java' 카테고리의 다른 글

[java] 파일 읽고,쓰기 사용법  (0) 2018.05.30
[java] 스레드 사용법  (0) 2018.05.27
[java] Random 사용법  (0) 2018.05.24
[java] sleep 사용법  (0) 2018.05.23
[java] printf 와 지시자  (0) 2018.05.22

[java] Random 사용법



java에서 난수 발생(Random) 방법에 대해 알아보겠다. 난수는 일정 범위 안에 아무 값을 발생 시키는 것을 의미한다. 예를 들어 범위를 0~9안에

난수 발생을 호출 할 때마다 0,1,2~8,9 아무 값이나 계속 다른 값이 나오게 된다.

 

Random 사용 예제



random 사용예는 아래와 같다.


import java.util.Random;


public class RandomMain {


public static void main(String[] args) {

//Random 클래스 객체 생성

Random r = new Random();

//사용자 지정한 값으로 랜덤값 추출 ( 0~9)

int value = r.nextInt(10);

System.out.println("value : " + value);

//int 범위 내에서 랜던값 추출

value = r.nextInt();

System.out.println("value : " + value);

}

}


nextInt에 인자를 넣지 않으면 int 범위내에 값이 발생한다. int 범위는 OS 마다 다르다. 인자 값을 넣으면 해당 수를 넘지 않은 범위에서 난수값이 발생 된다.


[import 할 클래스]

import java.util.Random;


[주요 함수]

Random r = new Random();

int value = r.nextInt(10); // value에 0~9까지 난수 값이 입력 된다.



반응형

'프로그램 > Java' 카테고리의 다른 글

[java] 스레드 사용법  (0) 2018.05.27
[java] 함수 가변 인자 사용 방법  (0) 2018.05.25
[java] sleep 사용법  (0) 2018.05.23
[java] printf 와 지시자  (0) 2018.05.22
[java] ServerSocket, Socket  (0) 2018.05.21

[java] sleep 사용법



프로그램 동작을 잠시 멈추기 위해 sleep 사용하는 방법에 대해 알아보겠다.  보통 CPU 점유을 다른 다른 프로세스나 스래드로 넘기기 위해 sleep을 사용 한다.

 

sleep 사용 예제



sleep 사용예는 아래와 같다.


public class Sleep {

public static void main(String[] args ) {

System.out.println("sleep 실행 전");

try {

Thread.sleep(1000); //1초 대기

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println("sleep 실행 후");

}

}


1000이면 1초다. sleep 인자 값에 적당한 시간 값을 넣어 주면 된다.


  try {

Thread.sleep(1000); //1초 대기

   } catch (InterruptedException e) {

e.printStackTrace();

   }




반응형

'프로그램 > Java' 카테고리의 다른 글

[java] 함수 가변 인자 사용 방법  (0) 2018.05.25
[java] Random 사용법  (0) 2018.05.24
[java] printf 와 지시자  (0) 2018.05.22
[java] ServerSocket, Socket  (0) 2018.05.21
[java] 다중 반복문 탈출 방법  (0) 2018.05.21

+ Recent posts