본문 바로가기

분류 전체보기77

[LeetCode] Symmetric Tree (Kotlin) https://leetcode.com/problems/symmetric-tree fun isSymmetric(root: TreeNode?): Boolean { if (root == null) { return true } return isEqual(root.left, root.right) } fun isEqual(left: TreeNode?, right: TreeNode?): Boolean { if (left == null && right == null) { return true } if (left == null || right == null) { return false } if (left.`val` != right.`val`) { return false } return isEqual(left.left, .. 2023. 1. 14.
[LeetCode] Merge Sorted Array (Kotlin) https://leetcode.com/problems/merge-sorted-array Merge Sorted Array - LeetCode Merge Sorted Array - You are given two integer arrays nums1 and nums2, sorted in non-decreasing order, and two integers m and n, representing the number of elements in nums1 and nums2 respectively. Merge nums1 and nums2 into a single array sorted in non-de leetcode.com fun merge(nums1: IntArray, m: Int, nums2: IntArra.. 2023. 1. 14.
[모던 자바 인 액션] 15장 - CompletableFuture와 리액티브 프로그래밍 컨셉의 기초 CompletableFuture와 리액티브 프로그래밍 컨셉의 기초 동시성을 구현하는 자바 지원의 진화 처음 Runnable, Thread를 동기화된 클래스와 메서드를 이용해 잠갔다. Java5 ExecutorService 인터페이스, Callable, Future Java7 분할 정복, 포크/조인을 지원하는 java.util.concurrent.RecursiveTask Java8 스트림, 람다에 기반한 병렬 프로세싱 Java9 분산 비동기 프로그래밍을 명시적으로 지원 발행-구독 프로토콜(Flow API) Executor와 스레드 풀 자바5는 Executor 프레임워크와 스레드 풀을 통해 스레드의 성능을 고도화 함. 스레드의 문제 스레드를 만들고 종료하는 비용은 비싸다. 따라서 기존 스레드가 실행되는 상태.. 2022. 12. 30.
프로세스와 스레드 프로세스와 스레드 프로세스 PCB(Process Controll Block)를 사용하여 OS가 프로세스를 관리한다. 특징 메모리에 적재되어 실행되는 프로그램의 인스턴스 운영체제로부터 시스템 자원을 할당받는 작업의 단위 프로세스는 각각 독립된 메모리 영역을 할당받는다. 각 프로세스는 최소 하나의 스레드를 가진다. 각 프로세스는 별도의 주소공간을 가지며, 프로세스는 다른 프로세스의 공간에 접근할 수 없다. 구조 Stack 임시 데이터 저장 (함수 호출, 지역변수 등) 함수를 호출할 수록 커지며 힙 메모리와 인접한 방향으로 커진다. 스택 포인터와 힙 포인터가 만나면 메모리가 소진되었다는 의미다. Heap 코드에서 동적으로 만들어지는 데이터 저장 Data 전역 변수, static 변수 등 Code 프로그램을 실.. 2022. 12. 30.