Day078

RISK_TAKER·2023년 5월 22일
0

2차 프로젝트 리뷰

DB 테이블 설계 관련 부분

어떤 아이템에 대한 가격을 설정하는 부분과 관련해서
연령별 구분코드를 저장하는 테이블과 나이별 가격을 저장한 테이블로 따로 관리하는 것이 좋다.

  • TABLE_[나이구분기준코드]
구분코드 시작나이 끝나이 비고(메모)

BAB      0        7      유아
CHD     8        13     어린이
STU     14       19     청소년
ADT     20       64     성인
OLD     65      150    노인

  • TABLE_[아이템당 나이별 가격]
구분번호 구분코드 가격

1         CHD    300
1         STU     500
1         ADT    1000
1         OLD      0
2         OLD    5000
2         ADT    8000

멀티 스레드

  • 프로세스
    실행 중인 하나의 프로그램
    하나의 프로그램이 다중 프로세스를 만들기도 한다.

  • 멀티 태스킹
    두 가지 이상의 작업을 동시에 처리하는 것

  • 멀티 프로세스
    독립적으로 프로그램들을 실행하고 여러 가지 작업 처리

  • 멀티 스레드
    한 개의 프로그램을 실행하고 내부적으로 여러 가지 작업 처리

메인 스레드

  • 모든 자바 프로그램은 메인 스레드가 main() 메소드 실행하며 시작

스레드 우선순위

  • 자바의 스레드 스케줄링
public class TestMain {

	public static void main(String[] args) {
		
		
		System.out.println("start");
		
		
		for (int i = 0; i <= 10; i++) {
			
			//Runable 인터페이스 구현 객체
			SampleRunable sr = new SampleRunable(i);
			Thread th = new Thread(sr);
			//sr.run();
			th.start();
			
			
			//Thread 상속받은 객체
			/*
			SampleThread st = new SampleThread(i);
			st.start(); //start 메소드를 호출 -> 스레드로서 run() 메소드를 실행.
			*/
		}
		System.out.println("end");
		//st.run();
	}
}

//Thread를 상속 or Runable 인터페이스를 구현
//run() 메소드가 있어야 한다.
class SampleThread extends Thread{
	int seq;
	
	public SampleThread(int seq) {
		this.seq = seq;
	}
	
	public void run() {
		System.out.println(seq + " start");
		
		try {
			int sleepCount = ( (int)(Math.random() * 2 ) + 1 ) * 1000;
			Thread.sleep(sleepCount);
		} catch (InterruptedException e) {
			e.printStackTrace();
		} //1000ms -> 1s
		
		System.out.println(seq + " end");
	}
}

class SampleRunable implements Runnable {

	int seq;
	
	public SampleRunable(int seq) {
		this.seq = seq;
	}
	
	@Override
	public void run() {
		// TODO Auto-generated method stub
		
		System.out.println(seq + " runable start");

		try {
			int sleepCount = ( (int)(Math.random() * 2) + 1 ) * 1000;
			Thread.sleep(sleepCount);
		} catch (InterruptedException e) {
			e.printStackTrace();
		} // 1000ms -> 1s

		System.out.println(seq + " runable end");
	}
}

0개의 댓글