9월 19일 - vector

Yullgiii·2024년 9월 19일
0

[Java] Vector와 ArrayList의 차이

1. Vector

  • 동기식(Synchronized): Vector는 스레드에 안전하도록 동기화 처리가 되어 있습니다. 즉, 한 스레드가 Vector 객체에서 작업 중이라면, 다른 스레드가 해당 객체에 접근할 수 없습니다.
  • 성능: 동기화가 적용되어 있으므로 멀티스레드 환경에서는 안전하지만, 그만큼 성능 저하가 발생할 수 있습니다.
Vector<String> vector = new Vector<>();
vector.add("Element 1");
vector.add("Element 2");
System.out.println(vector);

2. ArrayList

  • 비동기식(Non-Synchronized): ArrayList는 동기화 처리가 되어 있지 않아서 여러 스레드가 동시에 작업할 수 있습니다. 즉, 멀티스레드 환경에서는 직접 동기화를 구현해줘야 안전하게 사용할 수 있습니다.
  • 성능: 동기화가 없으므로 단일 스레드 환경에서 성능이 더 우수합니다.
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("Element A");
arrayList.add("Element B");
System.out.println(arrayList);

So...

Vector는 동기화가 기본적으로 처리되어 있어 멀티스레드 환경에서 안전하지만, 성능이 떨어집니다. 반면, ArrayList는 비동기식이므로 멀티스레드 환경에서는 신중하게 사용해야 하지만, 단일 스레드 환경에서는 성능이 더 좋습니다.

profile
개발이란 무엇인가..를 공부하는 거북이의 성장일기 🐢

0개의 댓글