스레드 2

[effective-java] 동시성

[11장. 동시성] 스레드는 여러 활동을 동시에 수행할 수 있게 해준다. 단일 스레드 프로그래밍보다 동시성 프로그래밍은 어렵다. 공유중인 가변 데이터는 동기화해 사용하라 synchronized 키워드는 메소드나 블록을 한번에 한 스레드씩 수행하도록 보장한다. (=synchronized가 붙으면 단 하나의 스레드만 실행가능) 동기화는 배타적 실행뿐 아니라 스레드 사이의 안정적인 통신에 꼭 필요하다. Thread.stop은 사용하지 말자 쓰기와 읽기 모두가 동기화되지 않으면 동작을 보장하지 않는다. 이 문제들을 피하는 가장 좋은 방법은 가변 데이터를 공유하지 않는 것이다. (가변 데이터는 단일 스레드에서만 쓰도록 하자) 여러 스레드가 가변 데이터를 공유한다면 그 데이터를 읽고 쓰는 동작은 반드시 동기화해야 ..

Dev/Java 2020.01.15

[java] 스레드

Thread(스레드) : 자바로 멀티태스킹 하는 것을 가능하게 만드는 객체스레드 => 프로세스 내부에서 실행되는 명령 모임CPU가 지시해서 스레드 하나하나마다 작업을 시킴. 스레드들이 작업을 할땐 절대 중복되지 않음V3 바이러스검사시(이게 하나의 프로세스) 섹터를 한번에 쭉 검사를 하게되면 너무 오래걸림.논리적으로 섹터를 구분하여 동시에 검사함. -> 이때 사용되는 개념이 스레드다중스레드 동시에 명령이 실행가능. 스레드마다 번갈아서 빠르게 실행되서 동시실행으로 보임클래스는 다중상속이 안됨. ClassA extends ClassB,Thread 1초. 메소드가 0.1초 만큼 쉬는 시간을 줌} catch (Exception e) {// TODO: handle exception}}}}public class Te..

Dev/Java 2019.01.28
반응형