일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 자바
- MSSQL 인덱스
- sql insert
- select count
- mssql bulk insert
- C++
- mssql 대용량 데이터 insert
- MS-SQL
- mssql 대용량 데이터
- SQLite
- SQL
- mssql insert
- SQL Server
- MSSQL INDEX
- jtds
- solvesql
- sql index
- 어노테이션
- annotation
- 테이블용량조회
- jdbc
- lag
- c#
- Java
- 윈도우함수
- jdbc bulk insert
- 포인터
- 자바 어노테이션
- MSSQL
- Today
- Total
목록Java (4)
Basic Byte Bites
1. 자바 어노테이션이란? 자바 어노테이션은 주석이라는 의미를 가진다. 자바 소스코드 사이에 @ 기호를 앞에 붙여 사용하는데, JDK 1.5부터 지원하는 기능이다. 2. 어노테이션의 용도? 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공 런타임환경에서 특정 기능을 실행하도록 정보를 제공 3. 어노테이션의 종류 ★ 내장 어노테이션의 종류 @Override 선언한 메서드가 오버라이드 되었음을 나타냄 부모 클래스(혹은 인터페이스)에서 해당 메서드를 찾을 수 없으면 컴파일 에러 발생 @Deprecated 해당 메서드가 더이상 사용되지 않음을 표시함. 만약 사용할 경우 컴파일 경고를 발생시킴 @SuppressWarnings ..
notify() wait() 를 호출했다면 에 의해서 락을 반납하고 대기실에서 대기 중인 쓰레 드 중에서 하나를 임의로 선택해서 통지할 뿐 락을 반납한 해당 쓰레드를 선택해서 통지 할수 없다. 운 좋게 락을 반납한 해당 스레드가 통지를 받으면 다행인데 그렇지 않 으면 계속 통지를 받지 못하고 무한정 기다리게 되는 현상이 발생한다 이런 현상을 '기아 현상' 이라 한다. 이 현상을 방지하기 위해 notify() 대신 notifyAll() 을 사용 해야 한다. 이 메서드는 대기실에 대기중인 모든 쓰레드에게 통지를 하기 때문에 기아 현상은 막았지만 통지 받은 쓰레드가 서로 락을 얻기 위해 경쟁을 하게 된다. 이처럼 여러 쓰레드가 서로 락을 얻기 위해 경쟁하는 것을 '경쟁 상태' 라 한다. 이 경쟁 상태를 개선하..
익명함수로 정의되는 람다식은 함수를 보다 간결하게 사용하기위해 등장하였으나 호출이 까다롭고(호출 할 메소드를 알고 있어야 함), 불필요하게 많이 사용되면 오히려 가독성이 떨어지는 효과가 나타남. Thread t = new Thread(()->System.out.print("람다식 사용")); t.start(); 스레드 객체를 생성하여 스레드의 첫번째 인자인 Runnable 객체를 람다식으로 간결하게 표현하여 인자를 넘기고 스레드의 start()메소드를 호출하여 Runnable 객체의 run() 메소드를 내부적으로 호출. 물론 스레드도 Runnable 인터페이스를 상속받고있으나 람다식을 사용하여 정의하는 동시에 인자로 보내주면 코드가 간결해질 수 있다. 다만, 람다식은 어떤 메소드가 정의되어 보내지는 지 ..
IDE에서 Thread의 suspend() 메소드와 resume() 메소드를 사용할 시 사용이 권장되지 않는다고 나온다. 이유는 두 메소드 모두 스레드 교착상태(deadlock)을 유발할 수 있기 때문인데, suspend() 메소드에 의해 타겟 스레드가 중단되는 시점에 중요한 리소스 등을 사용하고 있는경우 타겟 스레드가 재개될때까지 어느 스레드도 그 자원에 액세스 할 수 없기 때문이다. resume()은 단순히 suspend() 메소드에 의해 중단된 스레드를 재개하기 위해서만 사용한다. 따라서, suspend와 resume 메소드 대신 wait, notify, notifyAll 메소드를 사용하여 스레드를 제어하는것이 바람직하다. 이를 통해 스레드 안전성 문제를 피하고, 더 세밀한 제어가 가능하다.