[자바][JAVA][자바스크립트]자바(JAVA)의 정의, 자바(JAVA)의 특징, 자바(JAVA)의 역사, 자바(JAVA)에서의 문자편집, 자바(JAVA)에서의 함수편집, 자바(JAVA)에서의 Thread처리 분석(자바, JAVA)
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[자바][JAVA][자바스크립트]자바(JAVA)의 정의, 자바(JAVA)의 특징, 자바(JAVA)의 역사, 자바(JAVA)에서의 문자편집, 자바(JAVA)에서의 함수편집, 자바(JAVA)에서의 Thread처리 분석(자바, JAVA)에 대한 보고서 자료입니다.

목차

Ⅰ. 서론

Ⅱ. 자바(JAVA)의 정의

Ⅲ. 자바(JAVA)의 특징
1. 스크립트 언어
2. 간단하고 작은 프로그램 작성에 적합
3. 반복적인 작업의 수행
1) 이벤트
2) 사용자 이벤트 프로그래밍에 적합
3) 쉬운 디버깅과 테스팅

Ⅳ. 자바(JAVA)의 역사

Ⅴ. 자바(JAVA)에서의 문자편집

Ⅵ. 자바(JAVA)에서의 함수편집
1. if/if-else
2. while
3. for
4. break/continue
5. 함수의 정의
6. 함수의 값 반환
7. 객체(object)의 구성
1) 객체의 속성(property) 정의
2) 객체의 속성으로서의 객체
3) 객체에 메소드 붙이기
8. array

Ⅶ. 자바(JAVA)에서의 Thread처리
1. Thread란 무엇인가
2. Thread의 속성값
3. Thread의 Body
1) 간단한 thread 예제
2) Thread의 상태, 단계
3) Multithreaded Progmrams
4. 동기화

Ⅷ. 결론

참고문헌

본문내용

nt이다.
4. 동기화
동시에(concurrently) 실행되는 thread는 data를 공유하기 위해서 서로 다른 thread의 상태(state)와 행동(activities)을 고려해야하는 재미있는 상황 이 자주 발행한다. 일반적으로 생산자/소비자(Procuder/Consumer)의 예를 많이 들어 설명하듯이 이곳에서도 그러한 방식으로 설명하겠다.
예를 들어서, Java application에서 file에 data를 write하는 thread(producer)가 있고, file에서 data를 읽어 오는 thread(consumer)가 있다고 가정하자. 또는, keyboard에서 key 입력을 기다릴 때 producer 가 key event를 queue에 쓰고, consumer는 같은 queue에서 event를 읽어오는 경우가 있다.
이 모든 예는 common resource를 공유하는 concurrent thread이다. 그리고 이 thread는common resource를 공유하기 때문에, 어떠한 방법으로든 동기화 되어야 한다.
Producer/Consumer Example
다음은 0~9가지 세면서 \"CubbyHole\" object에 값을 저장하고, 값을 출력하는 Producer이다.
그리고, 0~100 millisecond동안 불규칙하게 sleep한다.
class Producer extends Thread
private CubbyHole cubbyhole;
private int number;
public Producer(CubbyHole c, int number)
cubbyhole = c;
this.number = number;
public void run()
for (int i = 0; i < 10; i++)
cubbyhole.put(i);
System.out.println(\"Producer #\" + this.number + \" put: \" + i); try
sleep((int)(Math.random() * 100));
catch (InterruptedException e)
다음은 CubbyHole에서 모든 integer를 소모하는 Consumer이다.
class Consumer extends Thread
private CubbyHole cubbyhole;
private int number;
public Consumer(CubbyHole c, int number)
cubbyhole = c;
this.number = number;
public void run()
int value = 0;
for (int i = 0; i < 10; i++)
value = cubbyhole.get();
System.out.println(\"Consumer #\" + this.number + \" got: \" + value);
위의 예에서, Producer와 Consumer는 \"CubbyHole\" object를 통해서 data를 공유한다. 그러나 위의 예에서 Producer가 값을 쓰고, Consumer가 값을 하나 읽는 부분을 명시한 부분은 CubbyHole에서 get(), put() method를 사용하여 내부적으로 표현되었다. 그러나, 주위할점은 이 두 thread의 동기화에 관한 부분은 없다.
그러면 발생되는 첫번째 문제를 고려해본다. Producer가 Consumer보다 빨라서 Producer가 2개를 처리했는데, Cunsumer는 하나밖에 처리하지 못해서, Consumer는 하나를 건너뛰게 되었다. 따라서 다음과 같은 결과가 나올 수 있다.
. . .
Consumer #1 got: 3
Producer #1 put: 4
Producer #1 put: 5
Consumer #1 got: 5
. . .
또다른 문제점이 발생할 수 있다. Consumer가 Producer보다 빨라서 Cunsumer는 같은 값을 두번 읽어갔다. 따라서 다음과 같은 결과가 나올 수 있다.
. . .
Producer #1 put: 4
Consumer #1 got: 4
Consumer #1 got: 4
Producer #1 put: 5
. . .
위의 두 경우는 모두 잘못되었다. 우리는 Producer가 정확히 하나를 write하면 Consumer는 정확히 하나를 읽어가기를 바란다. 위와 같이, 하나의 object를 사용하여 여러 개의 thread가 동시에 비동기적(asynchronously)으로 실행되어 잘못된 결과를 초래하는 것을 \"race condition\"이라고 한다.
위와 Producer/Consumer예제에서 race condition을 방지하기 위해, Producer와 Consumer는 동기화(synchronized)가 되어야 한다. 또한, CubbyHole과 같은 object는 동시에 두개의 thread에 의해서 동기화 되면서 접근되는데, 이러한 object를 \"condition variable\"이라고 한다. Java language는 \'monitors\'를 이용하여 condition variable을 이용하는 thread를 동기화 시킨다.
Ⅷ. 결론
자바 프로그래밍 언어는 신 언어로써, SUN microsystems에서 개발되었다. 그 후로 여러 다른 소프트웨어 업체에서 이 언어의 장점과 미래의 발전 가능성을 고려하여 여러 가지 회사 버젼으로 개발되고 있다.
자바 언어의 주된 특징으로는 완벽한 객체 지향 프로그래밍(Object Oriented Programming, OOP)의 지원과, 다중 쓰레드(Multi Thread), 멀티미디어 기능, 인터넷을 겨냥한 네트웍 기능, 하드웨어 독립성(Platform independence)등이 있다. 이들 중 주목할 만한 것은 다중 쓰레드와 네트웍 기능, 하드웨어 독립성이다.
참고문헌
고웅남, 자바프로그래밍 기초, 한및미디어
김철회, New 알기쉬운 Java 2
남궁성, 플래시로 배우는 Java, 도우출판
안용화(2001), 자바배움터, 생능출판사
이현우·천영환, Java Programming Bible
정의현·김성진(2002), 클릭하세요 자바, 대림출판사
Bruce Eckel, think in java(second edition)

키워드

  • 가격5,000
  • 페이지수14페이지
  • 등록일2009.05.03
  • 저작시기2021.3
  • 파일형식한글(hwp)
  • 자료번호#533386
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니