어떤 아이템에 대한 가격을 설정하는 부분과 관련해서
연령별 구분코드를 저장하는 테이블과 나이별 가격을 저장한 테이블로 따로 관리하는 것이 좋다.
BAB 0 7 유아
CHD 8 13 어린이
STU 14 19 청소년
ADT 20 64 성인
OLD 65 150 노인
1 CHD 300
1 STU 500
1 ADT 1000
1 OLD 0
2 OLD 5000
2 ADT 8000
프로세스
실행 중인 하나의 프로그램
하나의 프로그램이 다중 프로세스를 만들기도 한다.
멀티 태스킹
두 가지 이상의 작업을 동시에 처리하는 것
멀티 프로세스
독립적으로 프로그램들을 실행하고 여러 가지 작업 처리
멀티 스레드
한 개의 프로그램을 실행하고 내부적으로 여러 가지 작업 처리
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");
}
}