자바 191

JAVA 자바 Thread 자바 스레드 : 스레드의 안전한 종료 stop플래그, interrupt()

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드의 안전한 종료 stop플래그, interrupt() 스레드는 자신의 run() 메서드가 모두 실행되면 자동적으로 종료됩니다.경우에 따라 실행 중인 스레드를 즉시 종료할 필요가 생길 수 있습니다. 예를 들면 동영상을 끝까지 보지 않고 사용자가 멈춤을 요구할 경우가 있을 수 있습니다. Thread는 스레드를 즉시 종료시키기 위해 stop()메서드를 제공하지만 이 메서드는 Deprecated되어있습니다. =>아래 두가지 방법은 스레드를 즉시 종료시키기 위한 최선의 방법입니다. stop 플래그를 이용하는 방법 스레드는 run()..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 상태 제어 - 주어진 시간동안 일시 정지 sleep() / 다른 스레드에게 실행 양보 yield() / 다른 스레드의 종료를 기다림 join() / /// 스레드 간 협업 wait(), notify(), notifyAll()

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 주어진 시간동안 일시 정지 sleep() 실행 중인 스레드를 일정 시간 멈추게 하고 싶을 때는 Thread 클래스의 static 메서드인 sleep() 을 사용하면됩니다. 아래와 같이 Thread.sleep() 메서드를 호출한 스레드는 주어진 시간 동안 일시 정지 상태가 되고 다시 실행 대기 상태로 돌아갑니다.try{ Thread.sleep(1000);}catch(InterruptedException e){ //interrupt() 메서드가 호출되면 실행}매개 값에는 일시 정지 시키고 싶은 시간 만큼 1000분의1초 단위로 값을..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 스레드(Thread) 상태 /// 스레드 상태 제어(0)

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드(Thread) 상태 스레드 객체를 생성하고 start() 메서드를 호출하면 실행 대기 상태가 됩니다. 실행 대기 상태 : 아직 스케줄링이 되지 않아서 실행을 기다리고 있는 상태실행 상태 :실행 대기 상태에 있는 스레드 중에서 스레드 스케줄링으로 선택된 스레드가 비로소 CPU를 점유하고 run()메서드를 실행합니다.실행 상태의 스레드는 run() 메서드를 모두 실행하기 전에 스레드 스케줄링에 의해 다시 실행 대기 상태로 돌아갈 수 있습니다. 실행 대기 상태에 있는 다른 스레드가 선택되어 실행 상태가 됩니다. 이처럼 스레드는..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 스레드 우선순위 /// 동기화 메서드와 동기화 블록

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드 우선순위 멀티 스레드는 동시성 Concurrency or 병렬성 Parallelism 으로 실행됩니다. 동시성은 멀티 작을 위해 하나의 코어에서 멀티 스레드가 번갈아가며 실행하는 성질을 말하고,병렬성은 멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질을 말합니다. 싱글 코어 CPU를 이용한 머리 스레드 작업은 번갈아가며 실행하는 동시성 작업입니다. 번갈아 실행하는 것이 워낙 빠르다보니 병렬성으로 보일 뿐입니다. 스레드의 개수가 코어의 수보다 많을 때, 스레드를 어떤 순서에 의해 동시성으로 실행할 것인가를..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 작업 스레드 생성과 실행 - Thread 하위 클래스로부터 직접 생성 / 스레드의 이름

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ Thread 하위 클래스로부터 직접 생성Thread 의 하위 클래스로 작업 스레드를 정의하면서 작업 내용을 포함시킬 수도 있습니다.작업 스레드 클래스를 정의하는 방법입니다.public class WorkerThread extends Thread { @Override public void run() { 스레드가 실행할 코드 // run 메서드 재 정의 } }Thread thread = new WorkerThread();=> 코드를 조금 더 절약하려면? 아래처럼 Thread 익명 객체로 작업 스레드 객체를 생성할 수도 있습니다.Th..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 작업 스레드 생성과 실행(1) - Thread 클래스로부터 직접 생성

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 작업 스레드 생성과 실행 멀티 스레드로 실행하는 애플리케이션을 개발하려면 먼저 몇 개의 작업을 병렬로 실행할 지 결정하고 각 작업별로 스레드를 생성해야 합니다. 어떤 자바 애플리케이션이건 메인 스레드는 반드시 존재하기 때문에 메인 작업 이외에 추가적인 병렬 작업의 수만큼 스레드를 생성하면 됩니다. 자바에서는 작업 스레드도 객체로 생성되기 때문에 클래스가 필요합니다. java.lang.Thread 클래스를 직접 객체화해서 생성해도 되지만, Thread 를 상속해서 하위 클래스를 만들어서 생성할 수도 있습니다. Thread 클래스로..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 멀티 스레드의 개념 - 프로세스와 스레드, 메인 스래드

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 프로세스와 스레드 운영체제에서 실행 중인 하나의 애플리케이션을 프로세스라고 합니다. 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행하는데 이것이 바로 프로세스입니다. 하나의 애플리케이션은 다중 프로세스를 만들기도 합니다. 예를들어 크롬 브라우저를 여러개 실행했다면 실행한 갯수만큼 크롬 프로세스가 생성됩니다. 멀티 태스킹 : 두 가지 이상의 작업을 동시에 처리하는 것을 말합니다. 예를 들어 인터넷 검색을 하면서 동시에 음악을 들을 수 있습니다. 하지만 멀티 태스킹이 꼭 멀티..

자바 2017.03.15

JAVA 자바 java.time 패키지 / 파싱 Parsing 과 포맷팅 Formatting

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 파싱과 포맷팅 날짜와 시간 클래스는 문자열을 파싱해서 날짜와 시간을 생성하는 메서드와 날짜와 시간을 포맷팅된 문자열로 변환하는 메서드를 제공하고 있습니다. 파싱(Parsing) 메서드 아래는 날짜와 시간 정보가 포함된 문자열을 파싱해서 날짜와 시간을 생성하는 두 개의 parse() static 메서드입니다.클래스 리턴 타입 메서드(매개 변수)LocalDate LocalDate parse(CharSequence)LocalTime LocalTime LocalDateTime LocalDateTime parse(CharSequence,..

자바 2017.03.15

JAVA 자바 java.time 패키지 / 날짜와 시간을 조작하기 : 빼기와 더하기, 변경하기, 날짜와 시간을 비교하기

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 날짜와 시간을 조작하기 날짜와 시간 클래스들은 날짜와 시간을 조작하는 메서드와 상대 날짜를 리턴하는 메서드들을 가지고 있습니다. 빼기와 더하기 아래 표는 날짜와 시간을 빼거나 더하는 메서드들입니다.클래스 리턴타입 메서드(매개변수) 설명 minusYears(long) 년 빼기 minusMonths(long) 월 빼기 minusDays(long) 일 빼기LocalDate LocalDate minusWeeks(long) 주 빼기LocalDateTime LocalDateTime plusYears(long) 년 더하기ZonedDateTi..

자바 2017.03.15

JAVA 자바 java.time 패키지 / 날짜와 시간 객체 생성 : LocalDate / LocalTime / LocalDateTime / ZonedDateTime / Instant

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ java.time 패키지Date 클래스의 대부분의 메서드는 Deprecated 되었고, Date의 용도는 단순히 특정 시점의 날짜 정보를 저장하는 역할만을 했습니다. Calendar 클래스는 날짜와 시간 정보를 얻기엔 충분했지만, 날짜와 시간을 조작하거나 비교하는 기능이 불충분합니다. 자바 8부터 날짜와 시간으 나타내는 여러가지 API를 새롭게 추가됐습니다. 이 API는 java.util 패키지에 없고 별도로 java.time 패키지와 하위 패키지로 제공됩니다. 패키지 설명java.time 날짜와 시간을 나타내는 핵심 API인 ..

자바 2017.03.15