본문 바로가기

프로그램 (PHP,Python)180

쓰레드(Thread)간의 동기화(Synchronization) 멀티 태스킹을 말할때 피할수 없는것이 동기화(Synchronization)문제이다. 동기화란 멀티 태스킹 환경에서 여러개의 처리(태스크)를 서로의 진행상태에 맞추어 진행시키는것을 말한다. 문제점 코드 (플래그를 사용한 배타적 제어 코드) bool InUse = false; int func(void) { .... while(InUse) { } InUse = true; // 다른곳에서 접근 금지 File * fp = fopen("sample.dat", "wb"); if(fp != NULL) { ...... fclose(fp); } InUse = false; // 다른곳에서 접근 허용 } 이 코드의 문제점은 첫째, InUse가 false인것을 확인하는 조작가 true로 조작 하는 사이에 비록 짧지만 시간간격이.. 2009. 1. 30.
메모리 공간 사용 방법 (스택구조) 스택이란 메모리공간을 사용하는 방법 중의 하나이다. FILO(First In Last Out) 방식으로서 가장 마지막에 저장된 데이터가 가장 먼저 출력된다. 데이터의 삽입과 삭제는 저장된 최상위 항목이 위치한 Top 에서만 일어나며, 삽입과 삭제가 되어지는 위치의 주소를 가지고 있는 것을 스택포인터라고 한다. 스택포인터는 base에서 시작하여 데이터삽입시 하나 추가되고 데이터 삭제시 하나 삭제된다. 스택은 하드웨어의 인터럽트요청이나 응용프로그램의 시스템콜이 발생할 시 작업처리에 유용하다. 2009. 1. 30.
C# 기초 (Boxing과 UnBoxing) 정의 및 예제 Boxing이란 Value-Type을 Reference-Type(Object형) 으로 변환하는 것을 의미하구요. UnBoxing이란 Boxing을 반대 개념입니다. 감이 잘 안오시죠... 예제를 보겠습니다. 아...차~ 모든 데이터 형식은 Object형의 자식이다, Value-Type은 스택에 Reference-Type은 Heap에 생성됩니다. int p = 123; object o; o = p; //명시적 변환으로 (object)p로 해도 무방... 이런 구문이 있다고 한다면... 값 타입인 변수 p의 값을 참조 타입인 변수 o에 넣습니다. 이때 바로 Boxing이 일어납니다. 반대로 p = (int) o; 이렇게 하면 UnBoxing이 일어나구요. 만약에 값 타입 변수를 개체처럼 사용하고 싶다고 하는.. 2009. 1. 30.
MySQL 테이블 필드 데이터 형식, 범위 및 특징 구 분 데이터 형식 범위 및 특징 문 자 형 - MySQL 5.0은 문자 유닛의 문자 컬럼 정의문에 있는 길이 지정문을 해석한다.(이전 버전은, MySQL 길이를 바이트 단위로 해석한다.) - CHAR, VARCHAR, 그리고 TEXT 타입의 경우, BINARY 속성은 컬럼이 컬럼 문자 셋의 바이너리 콜렉션에 할당되도록 한다.(이전 버전의 경우, BINARY는 컬럼이 바이너리 스트링을 저장하도록 한다.) - 문자 컬럼에 대한 정렬 및 비교는 컬럼에 할당된 문자 셋을 기반으로 한다.(이전 버전의 경우, 정렬 및 비교는 서버의 문자 셋 콜렉션을 기반으로 하였다.) CHAR 및 VARCHAR 컬럼의 경우, 여러분은 컬럼을 바이너리 콜렉션 또는 BINARY 속성으로 선언해서 정렬 및 비교가 어휘 순서가 아닌 문.. 2008. 10. 22.
MySQL 함수 [숫자열, 문자열, 집계, 날짜, 기타함수...] MySQL 함수 숫자 관련 함수 ▶ ABS(숫자) : 절대값 출력. select abs(123); ▶ CEILING(숫자) : 값보다 큰 정수 중 가장 작은 수. --양수일 경우는 소숫점 자리에서 무조건 반올림(4.0과 같은 소숫점 자리 0 값은 제외) --음수일 경우는 소숫점 자리를 무조건 버림 select ceiling(4.0); select ceiling(4.1); select ceiling(4.9); ▶ FLOOR(숫자) : 값보다 작은 정수 중 가장 큰 수[실수를 무조건 버림(음수일 경우는 제외)]. --음수일 경우는 [.0/.00/.000/...] 을 제외하고 무조건 소숫점을 버리고 반내림(?) select floor(4.0); select floor(4.1); select floor(4.9).. 2008. 10. 22.