{"id":24906042,"url":"https://github.com/markruler/synchronous-blocking","last_synced_at":"2025-03-27T22:21:45.989Z","repository":{"id":274874595,"uuid":"923015428","full_name":"markruler/synchronous-blocking","owner":"markruler","description":"Synchronous / Blocking","archived":false,"fork":false,"pushed_at":"2025-01-27T13:58:08.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T11:49:34.760Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/markruler.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-27T13:56:16.000Z","updated_at":"2025-01-27T13:58:20.000Z","dependencies_parsed_at":"2025-01-29T21:45:00.507Z","dependency_job_id":"fc5ad1c8-641d-4356-b9e7-adf7ab42f7fa","html_url":"https://github.com/markruler/synchronous-blocking","commit_stats":null,"previous_names":["markruler/synchronous-blocking"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markruler%2Fsynchronous-blocking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markruler%2Fsynchronous-blocking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markruler%2Fsynchronous-blocking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/markruler%2Fsynchronous-blocking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/markruler","download_url":"https://codeload.github.com/markruler/synchronous-blocking/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245932242,"owners_count":20696020,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-02T00:37:43.139Z","updated_at":"2025-03-27T22:21:45.955Z","avatar_url":"https://github.com/markruler.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Synchronous \u0026 Blocking\n\n## 동기(Synchronous)와 비동기(Asynchronous)\n\n호출된 함수의 작업 완료 여부를 함수가 체크하는가?\n\n**동기(Synchronous)**\n호출된 함수의 작업 완료 여부를 호출한 함수가 체크합니다.\n예를 들어, 파일을 읽는 작업이 완료될 때까지 프로그램이 대기하는 경우가 이에 해당합니다.\n\n**비동기(Asynchronous)**\n호출된 함수의 작업 완료 여부를 신경 쓰지 않습니다.\n별도의 프로세스 혹은 스레드에서 실행하고 완료하면 호출한 쪽에 리턴합니다.\n예를 들어, 비동기 HTTP 요청을 보내고, 응답을 기다리는 동안 다른 작업을 수행하는 경우가 이에 해당합니다.\n\n## 블로킹(Blocking)과 논블로킹(Non-Blocking)\n\n호출된 함수가 리턴할 때까지 대기하는가? 아니면 제어권을 넘겨주고 다른 일을 할 수 있도록 하는가?\n\n**블로킹(Blocking)**\n호출된 함수가 작업이 완료될 때까지 제어권을 가지고, 해당 스레드가 대기합니다.\n예를 들어, 파일을 읽는 동안 해당 스레드는 다른 작업을 수행할 수 없습니다.\n이로 인해 프로그램의 성능이 저하될 수 있습니다.\n\n**논블로킹(Non-Blocking)** 작업이 진행되는 동안 스레드가 대기하지 않고 다른 작업을 수행할 수 있습니다.\n예를 들어, 파일을 읽는 동안 다른 작업을 계속 수행할 수 있으며, 파일 읽기가 완료되면 결과를 처리하는 방식입니다.\n\n## 참조\n\n- ChatGPT\n- [Boost application performance using asynchronous I/O](https://developer.ibm.com/articles/l-async/) | IBM\n- [Blocking-NonBlocking-Synchronous-Asynchronous](https://homoefficio.github.io/2017/02/19/Blocking-NonBlocking-Synchronous-Asynchronous/) | HomoEfficio\n- 개발자 기술 면접 노트 | 이남희\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkruler%2Fsynchronous-blocking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkruler%2Fsynchronous-blocking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkruler%2Fsynchronous-blocking/lists"}