본문 바로가기

Java 강의29

자바 스레드 레이스 컨디션 예제 / java thread race condition example 안녕하세요 이번 글에서는 스레드 레이스 컨디션의 이해를 돕는 예제에 대해서 알아보도록 하겠습니다 레이스 컨디션 멀티 스레드 프로그래밍에서 발생하는 문제로 여러 스레드가 다수의 리소스를 경쟁적으로 업데이트 하면 예측 불가능한 데이터 문제가 발생하는 것을 말한다 출처: http://fors.tistory.com/143 [fors] 예제는 1개의 은행 계좌를 가지고 두 명의 사람이 동시에 입 출금을 진행하는 예제입니다. 여기서 두 명의 사람은 두 개의 스레드에 해당합니다. 코드는 다음과 같습니다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class User implements Runnable{ private BankAccount ac.. 2017. 10. 25.
내부 클래스 익명 클래스 익명클래스란? 클래스의 선언과 객체의 생성이 동시에 되는 클래스 1개의 객체만을 생성하고 1번만 사용된다 이름이 없는 클래스, 인스턴스처럼 생성되고 소멸되는 클래스이다 익명클래스 용도 클래스를 새로 하나 구현하는 것이 더 큰 비용이 소모될때 쓴다 하나의 객체에 대해서 1회 사용하려 할때 사용한다 구조가 간단한 클래스에서 쓰일 수 있다 익명클래스 선언방법 클래스이름 인스턴스이름 = new 클래스이름(){ 메소드,필드 }; 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 31 32 33 34 package Day14; //무명 클래스(익명 클래스) //이름이 있는 클래스의 경우 interface Remoteabl.. 2017. 10. 18.
자바 inner 클래스 / 내부 클래스 안녕하세요 이번 글에서는 자바 내부 클래스에 대해서 알아보도록 하겠습니다. 내부 클래스 : 클래스 안에 다른 클래스를 정의 하는 것 내부 클래스의 사용 목적 1. 특정 필드를 private으로 유지하면서 자유롭게 사용 할 수 있다 2. 하나의 장소에서만 사용되는 클래스들을 한 곳에 모을 수 있다 3. 보다 읽기 쉽고 유지보수가 쉬운 코드 작성 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 package Day14; /* * 내부 클래스 * 클래스 안에 다른 클래스를 정의하는 것 */ class OuterClass{ private String secret = "메롱"; //외부 클래스의 생성자 public O.. 2017. 10. 17.
자바 동적 바인딩 / 자바 다형성 안녕하세요 이번 글에서는 자바 동적 바인딩과 다형성에 대해서 알아보도록 하겠습니다. 1 2 3 4 5 public class BookStore { public void superprint() { System.out.println("가져다 쓰세요"); } } Colored by Color Scripter cs 1 2 3 4 5 6 7 8 public class Web extends BookStore{ @Override //가져다 쓰자 public void superprint() { System.out.println("web이다"); // TODO Auto-generated method stub } } Colored by Color Scripter cs 1 2 3 4 5 6 7 8 9 10 11 12 13 .. 2017. 10. 13.
자바 스레드 / java thread 안녕하세요 이번 글에서는 자바 스레드에 대해서 알아보도록 하겠습니다. 스레드를 사용해야 하는 이유 멀티 프로세스는 데이터 공유가 어렵다 멀티 프로세스 각 프로세스가 별도의 메모리 공간을 할당 받기 때문에 각각의 프로세스들 사이에서 데이터를 어떻게 주고 받을지가 문제 멀티 스레드 각각의 스레드들이 하나의 프로세스 안에서 공통된 메모리 공간을 사용하기 때문에 레이스 컨디션이 문제가 된다 레이스 컨디션(Race Condition) 멀티 스레드 프로그래밍에서 발생하는 문제로 여러 스레드가 다수의 리소스를 경쟁적으로 업데이트 하면 예측 불가능한 데이터 문제가 발생하는 것을 말한다 레이스 컨디션의 예시는 글의 중간 부분에 적었습니다 Thread ( 스레드 )를 사용한 예 웹 브라우저에서 웹페이지를 보면서 동시에 파.. 2017. 10. 12.