배열을 사용하는 이유? 3개의 과일 이름을 변수에 저장하려면 다음과 같이 3개의 변수를 사용할 것이다. 하지만 만약에 저장한 과일 이름이 300개라면? 위와 같이 일일이 하나 하나의 변수에 저장하기 힘들 것이다. 배열을 이용하면 하나의 변수에 여러 가지 값을 저장할 수 있고, 색인(Index)을 통해 이 값에 접근할 수 있다. 새로운 배열 생성 하기 기본적으로 대괄호 기호인 배열 리터럴(literal)을 이용해서 배열을 생성한다. 배열 리터럴 내에서는 공백이나 줄바꿈은 중요하지 않으므로 각 엘리먼트의 길이기 길 경우 가독성을 위해
본 포스팅는 오라클 자바 튜토리얼의 Synchronization와 Thread Interference, Memory Consistency Errors, Synchronized Methods, Intrinsic Locks and Synchronization, Atomic Access를 번역하였습니다. 쓰레드는 주로 필드들이 가리키고 있는 객체 참조를 공유함으로써 서로 통신합니다. 이는 굉장히 효율적 통신 방법이지만, 쓰레드 간섭(thread interference)과 메모리 일관성 오류(memory consistency errors)
본 포스팅는 오라클 자바 튜토리얼의 Pausing Execution with Sleep와 Interrupts, Joins, The SimpleThreads Example를 번역하였습니다. Sleep으로 실행 중지하기 Thread.sleep() 메소드는 현재 쓰레드가 일정 기간동안 실행을 중지시킵니다. 이것은 해당 애플리케이션 또는 시스템 상에서 돌고 있는 다른 애플리케이션 내의 다른 쓰레드들에게 프로세서를 이용 가능하도록 만들기 위한 효율적인 방법입니다. sleep() 메소드는 다음 예제와 같이 속도 조절을 위해서도 사용될 수 있습
본 포스팅는 오라클 자바 튜토리얼의 Thread Objects와 Defining and Starting a Thread를 번역하였습니다. 쓰레드 객체 모든 쓰레드는 Thread 클래스의 인스턴스와 관계를 갖습니다. 동시 애플리케이션(concurrent application)을 개발하기 위해서 쓰레드 객체를 사용하는데는 두 가지 기본 전략이 있습니다. 쓰레드의 생성과 관리를 직접 제어하기 위해서, 애플리케이션이 비동기 작업이 필요할 때 마다 단순히 Thread 클래스의 인스턴스를 만들 수 있습니다. 응용 프로그램으로 부터 쓰레드 관리
본 포스팅는 오라클 자바 튜토리얼의 Processes and Threads를 번역하였습니다. 동시 프로그래밍(Concurrent Programming)에는 프로세스와 쓰레드, 이 두가지 기본 실행단위가 있습니다. 자바 프로그래밍 언어에서는 동시 프로그래밍은 주로 쓰레드와 관련이 있지만 프로세스 또한 중요합니다. 컴퓨터는 보통 여러 개의 활성화된 프로세스와 쓰레드를 가지고 있습니다. 이것은 심지어 동시에 하나의 쓰레드 밖에 실제로 처리할 수 없는 싱글 코어를 가진 시스템에서도 마찬가지입니다. 싱글 코어의 처리 시간은 운영체제의 시분활
자바에서 쓰레드를 작성하는 2가지 방법에 대해서 알아보겠습니다. Thread 클래스 확장하기 첫번째 방법으로 java.lang.Thread 클래스를 확장할 수 있습니다. Thread 클래스에는 상당히 많은 메소드가 있는데요. 그 중에서 run() 이라는 메소드만 오버라이드해주면 됩니다. 쓰레드마다 수행 시간을 다르게 하여 현실과 비슷한 상황을 연출하고 싶었습니다. 그래서 Thread.sleep() 메서드를 이용해여 1초 이상 6초 미만의 랜덤 딜레이를 주었습니다. 그리고 각 쓰레드의 시작과 종료 시점에 Thread.currentTh