728x90

[문제]

식사 다 마친 테이블을 조회하는 프로그래 만들기

 

[조건]

- 테이블은 총 10개 
- 식사를 다마친 테이블을 출력하기     
- 3개의 테이블이 식사를 다 마치면 치워주기 

- 10개의 테이블이 식사를 마치면 영업 종료 

 

[차근 차근 생각해보기]

  1. 다양한 코드 구현을 해보기 위해 람다식 사용해보기
  2. Runnable을 사용하여 테이블  식사 다 마친 테이블 찾아보기
  3. 조건문을 사용하여 3개의 테이블이 식사를 마치면 치워주는 문구 출력
  4. 모든 테이블이 식사를 마치면 마지막 테이블까지 치운 후 영업 종료  

 

[코드]

public static void main(String[] args) {
    Runnable table = () -> {
        System.out.println("DDONY의 식당 운영 시작");
        System.out.println("----------------------");
        for (int i = 1; i <= 10; i++) {
            System.out.println(i + "번 째 테이블 식사 완료");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            if(i%3 == 0){
                System.out.println("====================");
                System.out.println("3개의 테이블 치우기 완료");
                System.out.println("====================");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
        }
        System.out.println("==== 오늘 영업은 종료 되었습니다. ====");
    };

    Thread thread = new Thread(table);
    thread.start();

}

 

<실행 결과>

 

[반성할 점]

아직 스레드에 대한 이해도가 많이 부족하다.

그래도 써봤다는 것에 의의를 두었고 배웠던 람다식도 최대한 활용해보려고 노력하였다.

다양한 방법을 사용하여 간단한 다양한 프로그램을 만드려고 노력해봐야겠다.   

728x90

'Java' 카테고리의 다른 글

멀티스레드(Synchronized Thread)  (0) 2023.06.15
스레드(Thread)  (0) 2023.06.15
파스타 집 대기 알림 프로그램 만들기  (0) 2023.06.14
예외처리(try-catch)  (0) 2023.06.14
박물관 입장료 프로그램  (0) 2023.06.13
728x90

[스레드(Thread)]

Java에서 여러가지 일을 동시에 처리하기 위해 사용되는 것.

  • 실행 가능한 프로그램(.exe)이 실행되어 돌아가는 것을 프로세스라고 한다.
  • 프로그램을 실행하게 되면 하나의 프로세스가 수행된다.
  • 프로세스는 자원을 통해 실제로 작업을 수행하는 것을 스레드한다.
  • 프로세스는 여러개의 스레드가질 수 있다. 

즉, 스레드는 프로세스 안에서 실질적으로 작업을 실행하는 단위를 말한다.

 

[스레드 사용방법]

<Thread 클래스 상속>

public static void main(String[] args) {
    HelloThread thread = new HelloThread();
    hread.start();
}

class HelloThread extends Thread{
    public void run(){
        System.out.println("스레드야 안녕");
    }
}
  • Thread 클래스를 상속받은  클래스 만들기
  • run()을 오버라이드 하여 코드 구현
  • 생성한 클래스 객체 만들어서 스레드 사용하기

 

<Runnable 인터페이스>

public static void main(String[] args) {
    HelloThread hello = new HelloThread();
    Thread thread = new Thread(hello);
    thread.start();
}

class HelloThread implements Runnable{
    @Override
    public void run(){
        System.out.println("스레드야 안녕");
    }
}
  • Runnable 인터페이스를 구현한 클래스 만들기
  • run()을 오버라이드 하여 코드 구현
  • 만든 클래스 객체 생성하고, Thread 객체 만들어서 스레드 사용하기

Runnable 인터페이스를 사용하는 이유는 상속은 단일 상속만 가능하지만,

인터페이스는 여러개의 상속이 가능하기 때문에 사용한다. 

728x90

+ Recent posts