본문 바로가기

반응형

Language/Java

AtomicInteger&LongAdder&Thread-Safe 자바에서 Thread-Safe 즉, 데이터에 대해 동시 접근을 제어하기 위해 Lock( 2020/11/24 - [Language/Java] - Java thread에서의 Lock의 종류?) 을 사용한다. 그런데 이 데이터가 그냥 값을 읽거나 업데이트 정도의 기능일 경우에는 Lock보다는 원자성(Atomic) 변수가 더 성능도 좋고 효율적이다. 아래는 Thread-Safe 이야기 하다가 나옴 ㅋㅋ 오늘 포스팅은 AtomicInteger와 LongAdder에 대해 알아보고자 한다. LongAdder의 경우 실제 서비스에서 사용하고 있다. 위의 사진에서 보면 여러가지 정보가 있는데 하나씩 살펴보면..! int a = 0; thread-1 thread-2 a+=1 a+=1 의 경우 CPU에 의해 처리가 되는데 .. 더보기
Java thread에서의 Lock의 종류? 자바에서 2개의 Lock이 있는데 첫번째는 자바에서 thread간 동기화를 위해 synchronized 키워드를 사용하는것을 사용 합니다. 이런 synchronized 키워드를 사용하는 lock을 Intrinsic Lock 또는 Built-in Lock이라고 한다. // Mutual Exclusion public synchroized void intrinsicLockfunc(){ ... } // Wait synchronized(this){ ... this.wait(); ... } // signal synchronized(this){ ... this.notify(); ... } 두번째는 Java 1.5에서 java.util.concurrent.locks 패키지를 통해 제공되는 Explicit Lock이 있.. 더보기
Error parsing HTTP request header 에러 갑자기 헤더 오류가 나서 뭔가 싶었는데 알고 봤더니 앞단과 뒷단간에 통신할 때 Request가 Bad였던것!그래서 아래와 같이 오류가 떨어짐. 수정사항으로는 앞단(클라이언트, 프론트) encodeURL로 뒷단(서버)에서는 decoode를 수행.특이사항으로는 로컬에서는 잘되어짐. 서버단에서 버그 발생.톰캣 버전에 따라서 달라진다는것을 알수 있었음. -_-;;톰캣!!~~ - 끝 - 더보기
/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory problemjava -version-bash: /acet/program/jdk/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory solution$ yum -y install glibc.i686Loaded plugins: fastestmirror, securityYou need to be root to perform this command.[deploy@lineup-data-krane program]$ sudo yum -y install glibc.i686Loaded plugins: fastestmirror, securitySetting up Install ProcessLoading mirror speeds from .. 더보기
자바 예외처리를 생각해보자. 예외의 종류는 2가지로 보면 된다.checked exception과 unchecked exception말그대로 체크가 되는 예외와 예기치 못하게 발생하는 예외를 뜻한다. 또한 unchecked exception은 runtime exception 이라고 많이 불리운다.여기서 생각해보아야 할 것이 있다. 어떤 처리를 해주어야 예외처리를 잘하는 걸까?보통은 Exception가 발생하면 잡아서 에러로그를 찍어주거나 상위로 올려주어서 처리를 하기도 한다.try { ... 블라블라 ...} catch(Excetpion e) { logger.error(e.getMessage);}토비책에서도 제대로된 예외처리를 하라고 살짝 나오기도 한다. 과연..어떤 예외처리가 제대로된 예외처리일까? 사람마다 다를수 있을것 같기도 하.. 더보기
Integer.valueOf / Integer.parseInt 왜 자꾸 오류가 나나..싶었는데... Integer.valueOf(queryTimeStr); // queryTimeStr은 스트링형태가 확실했다... 원인은..int 범위를 넘어서였다..-_-;; 삽질 하다니 ㅋㅋㅋㅋ 더보기
input value escape 적용하기! 상황) 아래와 같이 input box의 value의 값에 특수문자가 들어가면 안녕하세요! "ace-t" 입니다가 아닌 안녕하세요! 만 나오게 된다.ㅠㅠ 처리) 처리는 자바단에서 하였고 guava lib를 사용하였다.maven기반!http://www.mvnrepository.com/artifact/com.google.guava/guava/18.0 com.google.guavaguava18.0 guava 사용법 - 아래와 같이 Escape하고자 하는것을 addEscpae로 추가하시면 됩니다. 단, html 특수문자를 처리해줘야 하는 상황 입니다. 즉, "는 쌍따옵표죵! \" 더보기
자바 전체공백 제거하기 1. trim()은 문자열 앞뒤 공백제거. 전체가 아니라서 부족해!~ 하실때는? replaceAll(" ","") 또는 replaceAll("\\p{Space}", "") 로 공백을 제거하면 됩니다. 위처럼 검색을 때리면 "카카오톡" 으로 붙어서 검색하게 되어집니다. 참 쉽죠잉?참고로 가독성이 첫번째것이 더 높을 것 같아서 replaceAll(" ","") 처리하려고 했는데 치환이 안되는 경우도 있는듯 하여두번째 방법을 택하였습니다.참고 사이트 : http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html 끝~ 더보기

반응형