JAVA thread (230705)

이원건·2023년 7월 5일
0

JAVA

목록 보기
32/33
post-thumbnail

1. 아래의 용어에 대하여 설명하시오.

  • 프로그램
  • 컴퓨터에서 실행될 수 있는 명령어들의 모음. 예로 워드프로세서 프로그램, 웹 브라우저, 게임 등이 있다.
  • 프로세스
  • 프로그램이 메모리에 올라와 있는 상태. 실행 중인 프로그램 = 프로세스이다. 운영체제에 의해 관리되는 독립적인 작업 단위
  • 쓰레드
  • 하나의 프로세스 내에서 실행되는 작업의 단위. 쓰레드는 프로세스의 자원을 공유하면서 병렬적으로 실행한다. 프로세스 내에서 메모리 공간을 공유하기 때문에 데이터 공유가 가능하다. 동시성을 구현하기 위해 사용.
  • 멀티 프로세스
  • 여러 개의 프로세스가 동시에 실행되는 것. 각각의 프로세스는 독립적으로 실행되며, 각각 별도의 메모리 공간 보유. 멀티 프로세스는 작업을 병렬적으로 처리하거나, 안정성을 향상시키기 위해 사용될 수 있으나 프로세스 간의 통신 및 자원 공유를 위해선 따로 조치를 해야한다.
  • 멀티 쓰레드
  • 하나의 프로세스 내에서 여러 개의 쓰레드가 동시에 실행되는 것을 의미. 멀티 쓰레드는 쓰레드 간의 통신과 공유 메모리를 통해 작업을 효율적으로 처리가능

2.아래를 쓰레드로 생성하여 프로그래밍 하시오.

  • 문제
- 300번 찍기
| 300번찍기
  • 코드
class Thread2 extends Thread{
	@Override
	public void run() {
		for(int i =0;i<300;i++) {
			System.out.print("-");
		}
	}
}

class Thread3 extends Thread{
	@Override
	public void run() {
		for(int i =0;i<300;i++) {
			System.out.print("|");
		}
	}	
}

public class GoogleDocsExample2 {
	public static void main(String[] args) {
		Thread2 th1 = new Thread2();
		Thread3 th2 = new Thread3();
	
		th1.start();
		th2.start();
	}
}
  • 실행 결과
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||---------------------------------------------------------------------------------------------------------------|||||||||||||-------------|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

3. 자바에서 쓰레드를 생성(코딩)하는 2가지 방법은?

  1. Thread 클래스를 상속 받아 자식 클래스에서 구현한다. 이후 Thread 클래스 타입의 변수에 구현한 자식 클래스 객체를 생성해 대입해준다.
  2. Runnable 인터페이스를 구현하는 클래스를 만들어 그 클래스에서 구현을 하고 Runnable 타입의 변수를 생성해 Thread 클래스 타입의 객체를 생성할 때 거기에 생성자 변수로 넣는다.

0개의 댓글