: Java에서 Class의 인스턴스가 생성된 이후에 내부 상태 변경이 가능한 객체를 말함
: Java에서 Class의 인스턴스가 생성된 이후에 내부 상태 변경이 불가능한 객체를 말함
'일급'이란 사용할 때 다른 요소들과 아무런 차별이 없다는 것을 뜻함
import java.util.function.Consumer;
public class Main {
public static void main(String[] args) {
Consumer<String> c = (t) -> System.out.println(t); // 람다식을 인터페이스 타입 변수에 할당
c.accept("Hello World");
}
}
import java.util.function.Consumer;
public class Main {
// 메소드 매개변수로 람다 함수를 전달
public static void print(Consumer<String> c, String str) {
c.accept(str);
}
public static void main(String[] args) {
print((t) -> System.out.println(t) ,"Hello World");
}
}
import java.util.function.Consumer;
public class Main {
public static Consumer<String> hello() {
// 람다 함수 자체를 리턴함
return (t) -> {
System.out.println(t);
};
}
public static void main(String[] args) {
Consumer<String> c = hello();
c.accept("Hello World");
}
}
➕ Thread Safe에 대한 내용 추가
✔️ 멀티 쓰레드 프로그래밍이란, 하나의 프로세스에서 여러 개의 쓰레드를 만들어 자원의 생성과 관리의 중복을 최소화 하는 것
✔️ Thead Safe란, 멀티 쓰레드 프로그래밍에서 일반적으로 어떤 함수나 변수 또는 객체가 여러 쓰레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없는 것
✔️ 하나의 함수가 한 쓰레드로부터 호출되어 실행 중일 때, 다른 쓰레드가 해당 함수를 호출하여 동시에 실행되더라도 각 쓰레드에서의 함수의 수행 결과가 올바르게 나오는 것
➡️ 반대로 Thread Safe 하지 않다는 것은, 여러 쓰레드가 같은 함수, 변수, 객체 등을 호출하여 실행했을 때 수행 결과가 동일하지 않고 각기 제각기 다른 결과가 나오는 것으로, 각 쓰레드가 다른 쓰레드의 실행 결과에 영향을 주는 것이다.
<참고 URL>