목록분류 전체보기 (208)
YJ의 새벽
동기화 ( synchronization ) --한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하게 막는것. --동기화하려면 간섭받지 않아야 하는 문장들을 "임계영역"으로 설정. --임계영역이란 : 중단한 작업을 다른쓰레드가 들어오지 못하는 영역. --임계영역은 락(lock)을 얻은 단 하나의 쓰레드만 출입 가능. ( 객체 1개에 락1개 ) --synchronized 를 이용한 동기화. 2가지. -- 임계영역은 한번에 한개의 쓰레드만 들어갈수있기에 갯수를 최소화하는게 좋다. ( 메서드보다 특정한영역을 지정하는게 좋음 ) class Account { private int balance = 1000; //private 으로해야 동기화의 의미가있다. public synchronized int getBal..
position ( 레이아웃 위치 ) --레이아웃 위치는 절대좌표와 상대좌표로 구분. --절대좌표는 엘리먼트가 브라우저의 페이지 안에 표시되는 방법을 지정하는것. --절대좌표 = position : absolute ; 로 사용. --절대좌표는 브라우저 왼쪽 상단이 기준점이 되며 , 오른쪽 하단의 지정된 좌표로 이동하여 표시 --모든 요소의 기준점은 좌측상단이 시작점 ( 0,0 ) = ( x,y ) --position속성은 지정한 요소들을 원하는 위치에 배치할 수 있는 속성. - 가장먼저 어디를 기준으로 위치시킬것인지 대상을 정해야한다. **position : relative = 요소의 위치를 절대값으로 설정 (기준 : 자기 자신 ) **position : absolute = 요소 위치를 상대적인 위치 값..
**float : 가로배치속성. ( 블록단위 ) left , right --레이아웃 배치를 위한 CSS 포지셔닝을 가로로 배치하는 float ( 한줄, 여러줄에 걸쳐 이미지와 텍스트랄 함께 출력 ) -- float 을 사용하지 않으면 기본적으로 세로로 배치. -- 블록 개념을 갖고있는 div 태그와 , 인라인개념을 갖고있는 span 태그를 함께 사용 --float 요소 뒤에 따라오는 형제 요소는 float 요소의 존재를 인지못하고 무시하여 배치. 즉, 형제요소끼리 float 요소의 영향을 받으므로 모든 형제 요소에게 float 속성을 적용해야함. ***float 의 문제점 --float을 사용한 요소들은 둥둥띄어져있기 때문에 다른 요소들과 겹칠수 잇다. --> 해결방법 : overflow : hidden..
**static void sleep : 천분의 일초. 5초 ( 5000 ) **void join : 다른 쓰레드를 기다린다. **void interrupt : 쓰레드를 깨운다. **void suspend : 일시정지 **void resume : 다시 재생 **static void yield : 양보 **static 붙은메서드는 자기 자신에게만 호출 가능하다. static void sleep() --현재 쓰레드를 지정된 시간동안 멈추게한다. ( 자기자신 ) --예외처리를 꼭 해야한다. (InterruptedException이 발생하면 깨어남 ) --특정 쓰레드를 지정해서 멈추게하는것은 불가능 . class ThreadEx extends Thread{ // thread1 생성 @Override public ..
데몬쓰레드 --일반 쓰레드의 작업을 돕는 보조적인 역할을 수행. --일반 쓰레드가 모두 종료되면 자동적으로 종료. -- ex)) 가비지 컬렉터, 자동저장, 화면 자동갱신 등등..에 사용 . --무한루프와 조건문을 이용해서 실행 후 대기하다가, 특정조건이 만족되면 작업을 수행하고, 다시 대기하도록 작성. boolean isDaemon () : 쓰레드가 데몬쓰레드인지 확인, 참이면 true 를 반환 void setDaemon( boolean on) : 쓰레드를 데몬쓰레드 , 사용자 쓰레드로 변경 매개변수 on 을 true 로 지정하면 데몬쓰레드가 된다. **setDaemon(boolean on) 은 반드시 start() 호출 전에 실행되여야함. 그렇지않으면 오류발생. EX )))) 데몬쓰레드 예제. publ..
--프로세스 : 실행중인 프로그램, 자원 (메모리,cpu ... ) 과 쓰레드로 구성. --쓰레드 : 프로세스 내에서 실제 작업을 수행. 모든 프로세스는 하나 이상의 쓰레드를 가지고있다. 멀티쓰레드의 장점 : 시스템자원을 효율적으로 사용할수있음. 사용자에대한 응답성이 향상. 작업이 분리되어 코드가 간결. 멀티쓰레드의 단점 : 동기화(synchronization)에 주의 해야함. 교착상태가 발생하지않도록 주의. 프로그래밍 할 때 고려해야 할 사항들이 많다. 쓰레드 구현과 실행. -- 자바는 단일 상속이므로, Runnable 을 구현하는것이 좀더 실용적이다. EX ))) 쓰레드를 실행해보자. -- 쓰레드를 실행시키면 (start()) 바로 실행되는게 아니고, OS 스케줄러가 실행순서를 결정한다. ( OS에 ..
** accept --입력받을수있는 파일의 유형을 지정하는 속성 --기본적으로 모든확장자 + 모든파일 ( * : 모든 파일이름. * : 모든 확장자 이름 ) --accept 속성을 지정하지 않으면 모든 유형의 파일을 입력받을수 있다. --여러종류의 파일을 입력받기위해서는 쉼표로 목록을 구분. ( .txt , .pdf ... ) ** MIME 타입 ( Multipurpose Internet Mail Extensions ) -- type/subtype --클라이언트에게 전송된 문서의 다양성을 알려주기위한 메커니즘. --웹에서 파일확장자는 별 의미가 없다. 그러므로 각 문서와 함께 올바른 MIME 타입을 전송하도록 서버가 정확히 설정하는것이 중요하다. --브라우저들은 리소스를 내려받았을 때 해야할 기본 동작이..
애너테이션 --주석처럼 프로그래밍 언어에 영향을 미치지 않으며 , 유용한 정보를 제공. 표준 애너테이션 --JAVA에서 제공하는 애너테이션 --@Override : 오버라이딩을 올바르게 했는지 컴파일러가 체크하게한다. --메소드 선언부 앞에 @Override 를 붙인다. --@Deprecated : 앞으로 사용하지않을것을 권장하는 필드나 메소드에 붙인다. --@FunctionalInterface : 함수형 인터페이스에 붙이면 , 컴파일러가 올바르게 작성했는지 체크. --함수형 인터페이스에는 하나의 추상메서드만 가져야한다는 제약이 있음. --@SuppressWarning() : 컴파일러의 경고메시지가 나타나지 않게 억제한다. -- () 안에 억제하고자 하는 경고의 종류를 문자열로 지정. -- ex ) 경고..