쓰레드의 동기화 (synchronization) 한 쓰레드가 진행 중인 작업을 다른 쓰레드가 간섭하지 못하도록 막는 것 만일 쓰레드 A가 작업하던 도중에 다른 쓰레드 B에게 제어권이 넘어갔을 때, 쓰레드 A가 작업하던 공유데이터를 쓰레드 B가 임의로 변경하였다면, 다시 쓰레드A가 제어권을 받아서 난머지 작업을 마쳤을 때 다른 결과를 얻을 수 있다. 이러한 일을 방지하기 위해서 한 쓰레드가 특정 작업을 끝마치기 전까지 방해받지 않도록 하는 것이 임계영역(critical section) 과 잠금(락, lock)이다. 공유 데이터를 사용하는 코드 영역을 임계 영역으로 지정한 뒤 데이터가 소유한 lock을 흭득한 단 하나의 쓰레드만 영역 내의 코드를 수행할 수 있다 한다. 그리고 해당 쓰레드가 영역 내의 모든 ..
쓰레드의 실행제어 쓰레드 프로그래밍이 어려운 이유는 동기화(synchronization)와 스케줄링(scheduling)때문이다. 앞에서 우선순위를 통해 스케줄링 하는법을 알았지만, 효율적인 멀티쓰레드 프로그램을 만들기 위해서는 보다 더 정교한 스케줄링을 통해 프로세스에게 주어진 자원과 시간을 여러 쓰레드가 낭비없이 잘 사용하도록 프로그래밍 해야한다. 메서드 설 명 static void sleep(long millis) static void sleep(long millis, int nanos) 지정된 시간(1/1000 단위)동안 쓰레드를 일시정지시킨다. 지정한 시간이 지나고 나면, 자동적으로 다시 실행대기상태가 된다. void join() void join(long millis) void join(lon..
login table - Test Value는 해쉬가 안돼있다.
요구사항 아이디와 패스워드를 이용해 접속 접속 시점 case 1 : if 블랙고객 접속 종료. - DB [고객등급] case 2 : 사용자 등급별 추천 상품 리스트 출력 & 메뉴 메뉴 구성 1. 상품조회 블랙 고객 : 접속 불가능 일반 고객 : 가격이 빠진 상품 조회 ( 이전보다 - ) 우수 고객 : 가격/수량이 포함된 상품 조회 최우수 고객 : 가격/수량/할인율이 포함된 상품조회 2. 로그아웃 3. 메시지 전송으로 구성 (최우수만) - 네트워킹 모델 - Model package com.model; public class Customer { String id; String pw; String cnum; //phone number String name; String addr; int point; Strin..