java (3) 썸네일형 리스트형 병렬 처리 - CountDownLatch 쓰레드를 사용해서 동시에 여러가지 작업을 하는 경우가 있다. 하지만 쓰레드는 비동기 처리이기 때문에 메인 쓰레드와 같이 작업이 진행되고 매번 처리되는 순서도 달라진다. 실행시킨 쓰레드가 모두 처리되었을 때 다시 메인 쓰레드의 동작이 실행되도록 하는 방법은 없을까 찾아보던 중 CountDownLatch 클래스를 활용하면 위의 문제를 해결할 수 있다는 걸 알게 되어 정리하는 글을 작성하게 되었다. CountDownLatch는 선언 시 매개변수를 하나 받는데 해당 매개변수는 정수이다. 핵심은 countDown() 메소드와 await() 메소드인데 각각의 쓰레드에서 countDown() 메소드를 호출하면 처음 선언할 때 받은 변수의 값이 하나씩 떨어진다. await()를 사용 시 프로그램은 CountDownLa.. [JAVA] 숫자로 된 char를 int로 변경하는 방법 char c = '1'; int result1 = (int)c; //49 int result2 = Character.getNumericValue(c); //1 보통 첫번째 방법으로 int로 캐스팅을 많이한다. 특히 알고리즘 문제를 풀 때 많이 사용하는데 명시적 타입 캐스팅을 하게 되었을 때 char값은 아스키코드값으로 변경되기 때문에 1이 아닌 49로 변경되게 된다. 그래서 숫자를 변경할때는 번거롭게 '0' 또는 48을 빼주는 형태로 숫자로 변환을 해왔었는데 Character wrapper class에 좋은 메소드가 있었다. getNumericValue() 메소드를 사용하면 숫자로 된 char형을 숫자형태 그대로 반환해준다. [java] 블록체인 구조 약식 구현 블록체인은 정보를 가지고 있는 블록을 해시 알고리즘을 통해 해시값으로 변경해 다음 블록이 저장하고 있는 구조입니다. static class Block{ private String prevHash; private String data; private int nonce; private String hash; public Block(String prevHash, String data) { super(); this.prevHash = prevHash; this.data = data; } public void genesisHash() { hash = encrypt(prevHash + data + nonce); } public void hash() { String tmp = ""; while (true) { tmp.. 이전 1 다음