Java - CountDownLatch 사용 방법

CountDownLatch는 어떤 쓰레드가 다른 쓰레드에서 작업이 완료될 때 까지 기다릴 수 있도록 해주는 클래스입니다. countDown()이 호출되면 Latch의 수가 1개씩 감소하며, await()은 Latch의 숫자가 0이 될 때까지 기다립니다. 이 두개의 메소드를 이용하여 병렬처리, 멀티쓰레딩으로 작업을 처리하도록 만들 수 있습니다.

15 Jun 2020

Java - AtomicLong 사용 방법

AtomicLong은 Long 자료형을 갖고 있습니다. Thread-safe로 구현되었고, 멀티쓰레드에서 동시성 고려 없이 사용할 수 있습니다. volatile과 다르게 여러 쓰레드에서 값을 write해도 동시성이 보장됩니다. get, set, getAndSet, compareAndSet 등의 함수를 제공해 줍니다.

14 Jun 2020

Python - Lambda function 이해하기 (filter, reduce, map)

Lambda function은 함수를 한 줄로 정의하는 문법입니다. 인자의 개수에는 제한이 없지만, 표현식(expression)은 1개만 정의되어야 합니다. Lambda는 filter, reduce, map 등의 함수들고 함께 사용될 수 있습니다. 보통 한 줄로 구현되는 함수를 간결하게 표현하거나, 인자로 전달되는 함수를 inline으로 정의하기 위해 사용합니다.

14 Jun 2020

Java - ArrayBlockingQueue 사용 방법

ArrayBlockingQueue는 Array로 구현된 BlockingQueue입니다. Queue의 크기가 정해져 있기 때문에 무한히 아이템을 추가할 수 없습니다. 추가되는 아이템은 순서가 있으며, FIFO(First In First Out) 순서를 따릅니다. ArrayBlockingQueue는 멀티 쓰레드 환경에서 사용하기 위해 구현되었으며 내부적으로 동시성에 안전합니다.

09 Jun 2020

Android - Quick Settings에 Custom Tile 추가하는 방법 (kotlin)

Android 7.0 (API 24)부터 Quick Settings Tiles를 지원합니다. Quick Settings에 Custom Tile을 추가할 수 있는 기능입니다. TileService를 구현하면, Quick Settings가 그 서비스를 찾아서 Tile로 등록해 줍니다. onTileAdded(), onClick()이 호출될 때 Tile의 상태를 변경할 수 있습니다.

08 Jun 2020

Java - 배열 정렬(Sorting) (오름차순, 내림차순)

Arrays.sort()을 이용하면 쉽게 배열(Array)을 내림차순, 오름차순으로 정렬(sorting)할 수 있습니다. Integer, String 등 구분없이 모든 객체를 정렬할 수 있습니다. 또한, 클래스에 Comparable을 구현하면 객체 배열(Array)도 순서대로 정렬할 수 있습니다. 예제와 함께 Array를 sorting하는 방법에 대해서 알아보겠습니다.

07 Jun 2020

Java - String.matches()로 문자열 패턴 확인 및 다양한 예제 소개

String.matches()로 특정 패턴의 문자열을 포함하는지 확인할 수 있습니다. 특정 패턴이란 정규표현식(Regex)를 의미합니다. Pattern.matches()도 동일한 역할입니다. 문자열에 해당 패턴이 일치한다면 결과를 boolean으로 리턴합니다. 이를 통해 내가 찾는 패턴으로 문자열이 구성되었는지 알 수 있습니다.

07 Jun 2020

Android - Broadcast Receiver 등록 및 이벤트 수신 방법

Broadcast를 통해 시스템과 앱 또는 앱과 앱 간의 이벤트를 주고 받을 수 있습니다. 정적, Manifest에 Receiver를 등록하거나 동적으로, registerReceiver()를 이용하여 리시버를 등록할 수 있습니다. sendBroadcast() 또는 sendOrderedBroadcast()으로 이벤트를 전달할 수 있습니다. 또한 퍼미션으로 이벤드 송수신을 제한할 수도 있습니다.

06 Jun 2020
codechachaCopyright ©2019 codechacha