synchronized: 3개의 글
참조문서 : https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html 1. 쓰레드란? 자바의 메인메소드 역시 하나의 실행흐름으로서, 메인 쓰레드에 해당한다. 이것은 main() 메소드에서 Thread.currentThread().getName(); 를 통해 확인이 가능하다. 쓰레드를 이용하면 하나의 프로세스에서도 병렬적(동시적)으로 처리, 즉 여러 개의 처리 루틴을 가질 수 있다. 단순 반복의 코드를 실행할 때도 여러 개의 쓰레드를 만들어서 분리 시킨 뒤 결과 데이터를 받아 합치면 그만큼 시간을 절약할 수 있다. 특히 짧은 시간 내에 많은 사용자를 처리해야하는 대용량 시스템이나 CPU 활용을 극대로 해서 처리해야 하는 복잡한 연산 작업 등에 많이 ..
쓰레드의 동기화 싱글쓰레드 프로세스의 경우 프로세스 내에 단 하나의 쓰레드만 작업하기 때문에 프로세스의 자원을 가지고 작업하는 데 별문제가 없지만, 멀티쓰레드 프로세스의 경우 여러 쓰레드가 같은 프로세스 내의 자원을 공유해서 작업을 하기 때문에 서로의 작업에 영향을 주게 된다. 만일 쓰레드A가 작업하던 도중에 다른 쓰레드B에게 제어권이 넘어갔을 때, 쓰레드A가 작업하던 공유 데이터를 쓰레드B가 임의로 변경하였다면, 다시 쓰레드A가 제어권을 받아서 나머지 작업을 마쳤을 때 원래 의도했던 것과는 다른 결과를 얻을 수 있다.이는 마치 한 방의 여러 사람이 방안의 컴퓨터를 함께 나눠 쓰는 상황과 같아서 한 사람이 컴퓨터로 문서작업 도중에 잠시 자리를 비웠을 때 다른 사람이 컴퓨터를 만져서 앞 사람이 작업하던 문..
final, static, abstract, synchronized 변수나 함수 선언시, 해당 변수나 함수 활용 방법에 대한 modifier를 설정할 수 있다. modifier 구분설명 final 변수 선언 변수를 상수로 이용하는 경우 사용한다. 함수 선언 오버라이딩이 불가능한 메쏘드를 정의할 때 이용한다.static 변수 선언 클래스에 소속된 클래스 변수를 의미한다. 클래스 생성시 만들어진다. 함수 선언 abstract함수 선언 추상 메쏘드를 의미한다. 하위 클래스에 의해 구현된다. synchronized함수 선언 thread의 동기화를 의한 메쏘드이다. final 은 변수를 선언할 때와 함수를 선언할 때 쓰임새가 다르다. - 상수 : final (변수 선언시) final을 사용하여 변수를 선언하면 할..