// Thread 생성과 동시에 실행
Thread thread = new Thread(() =>
for(int i=0;i<4;i++){
System.out.println("hellow world")
}
).run();
synchronized
동기화, 특정 객체에 lock이 걸려있는지 안 걸려있는지 체크 하여 작업
구문: synchronized(객체)
기능: 해당 객체에 lock이 걸려있는지 확인한다
해당 객체에 lock이 안 걸려 있다면 걸고 실행
해당 객체에 lock이 걸려 있다면 해제될때까지 기다린다.
논 synchronized는 객체 lock이 걸려있든 걸려있지 않든 실행 시킨다.
// 두 함수는 동일한 기능
// 명시 되어 있지는 않지만 this 객체를 기준으로 lock을 검사함
public synchronized void print1(){
// to do
}
public void print2(){
synchronized(this){
// to do
}
}
Optional
return null 을 통해 코드가 복잡해지는 걸 방지하기 위해 사용을 권장
.ifPresent(s→(System.out.println(”test”))): 해당 Optional 객체가 null이 아니라면 해당 내용을 실행해라