[Java] StringBuilder

JTI·2022년 12월 2일
0

☕️  Java

목록 보기
34/59
post-thumbnail

💡 StringBuilder


기능은 StringBuffer 와 유사하다.

✔️ StringBuilder는 동기화되어 있다.

❗️ 동기화
: 멀티 쓰레드에 안전하게 하는 것 (thread - safe)
: 데이터 보호

밑에 쓰레드의 내용은 참고만 하자. 나중에 자세히 공부하는 걸로!

쓰레드는 2가지로 분류된다.

  1. 싱글 쓰레드: 한번에 1개 작업 (지금까지 했던거 다 싱글쓰레드)
  2. 멀티 쓰레드: 여러개 작업

싱글 쓰레드를 예를들어, 채팅창에 상대방이 파일 문서를 보냈는데 내가 그 문서를 다운로드 받으면 그동안 채팅도 못치고 아무것도 동작할 수 없다.
즉, 하나에 한개만 동작하고 동시에 무엇을 할 수 없다. 그것을 싱글쓰레드라고 한다.

그 반대로 동시에 동작할 수 있는 것이 멀티 쓰레드이다.
하지만 다 나름대로 단점이 있다.

한번에 여러번 동작하니까 서로 데이터를 공유한다.
여럿이 동작함으로써, 내가 작업하는동안 다른 사람이 그 데이터를 건들일 수 있다. 그러면 데이터가 꼬이게 된다.

그러한 부분을 막아주는 것이 동기화이다.

✔️ 멀티 쓰레드 프로그램이 아닌 경우, 동기화는 불필요한 성능저하를 일으킨다.

무조건 StringBuffer를 쓸 것이 아니라, 싱글 쓰레드에서는 StringBulder 를 사용하는 것이 좋다. 성능이 조금 향상될 것이다.

StringBuilder sb = new StringBuilder();

References
: https://cafe.naver.com/javachobostudy

profile
Fill in my own colorful colors🎨

0개의 댓글