[JAVA] 동기화

nocarrotrabbit·2022년 10월 19일
0

동기화

동기화(Synchronization)는 작업들 사이의 수행 시기를 맞추는 것을 말합니다. 자바에서 List, Set 그리고 Map과 같은 컬렉션(Collection)의 구현 클래스를 사용할 때 바로 이 동기화가 중요한 이슈가 될 수 있는데요. 동기화가 제공되는 것이 무조건적으로 좋은 것이 아니라 실행 속도 측면에서 성능의 차이가 있기 때문에 상황에 따라서 적절하게 사용하는 것이 좋습니다.


List<String> list = Collections.synchronizedList(new ArrayList<>()); // -- 방법 1
		list.add("A");
		list.add("B");
		list.add("C");
		synchronized (list) {
		    Iterator<String> iterator = list.iterator();
		    while (iterator.hasNext())
		        System.out.println(iterator.next());
		}
		
		CopyOnWriteArrayList<String> list1 = new CopyOnWriteArrayList<>(); // -- 방법 2
		list1.add("A");
		list1.add("B");
		list1.add("C");
		 
		Iterator<String> iterator = list1.iterator();
		while (iterator.hasNext())
		    System.out.println(iterator.next());

0개의 댓글