{"id":18745303,"url":"https://github.com/kwishna/asyncasyncreactivejava","last_synced_at":"2025-11-22T23:30:14.870Z","repository":{"id":248005980,"uuid":"826987395","full_name":"kwishna/AsyncAsyncReactiveJava","owner":"kwishna","description":"Sync And Async Reactive Java","archived":false,"fork":false,"pushed_at":"2024-07-11T18:37:10.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-28T20:15:32.780Z","etag":null,"topics":["async","reactive-programming","thread","virtual-threads-java-21"],"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/kwishna.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":"2024-07-10T19:34:14.000Z","updated_at":"2024-07-19T20:58:40.000Z","dependencies_parsed_at":"2024-07-11T21:46:02.123Z","dependency_job_id":"a30733c9-0593-41bc-99fe-a22b7102772a","html_url":"https://github.com/kwishna/AsyncAsyncReactiveJava","commit_stats":null,"previous_names":["kwishna/asyncasyncreactivejava"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwishna%2FAsyncAsyncReactiveJava","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwishna%2FAsyncAsyncReactiveJava/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwishna%2FAsyncAsyncReactiveJava/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwishna%2FAsyncAsyncReactiveJava/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kwishna","download_url":"https://codeload.github.com/kwishna/AsyncAsyncReactiveJava/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239627250,"owners_count":19670844,"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":["async","reactive-programming","thread","virtual-threads-java-21"],"created_at":"2024-11-07T16:17:34.731Z","updated_at":"2025-11-22T23:30:14.817Z","avatar_url":"https://github.com/kwishna.png","language":"Java","readme":"## Concurrency vs Synchronous vs Asynchronous\n\n**Concurrency** refers to the ability of a system to handle multiple tasks or requests simultaneously, even if they are not necessarily being executed at the exact same moment.\nIt is about making progress on multiple tasks, even if they are not completed at the same time.\n\n**Synchronous operations** are blocking - they execute in a strict sequential order, one after the other.\nThe program waits for each operation to complete before moving on to the next one.\nIt's like a single person cooking a meal, where each step must be completed in a specific order before moving on to the next.\n\n**Asynchronous operations**, on the other hand, are non-blocking.\nThey allow the program to continue executing other tasks while waiting for the asynchronous operation to complete.\nThe results are handled via callbacks, promises, or async/await syntax.\nIt's like having multiple cooks in a kitchen, where each can work on a different part of the meal simultaneously, rather than waiting for the previous step to finish.\n\n## Real Life Analogy\n\nImagine you are planning a birthday party and need to send out invitations, buy decorations, and bake a cake.\nHere's how concurrency, synchronous, and asynchronous operations would play out:\n\n**Synchronized**: The chef (your program) prepares breakfast, then lunch, then dinner, one after the other, without starting a new meal until the current one is done.\n\n**Asynchronized**: The chef (your program) boils eggs for breakfast, while they boil, he makes pancake batter, and while the pancakes cook, he chops vegetables for lunch.\nThe chef manages multiple tasks by not idly waiting and uses the waiting time to progress with other tasks.\n\n**Concurrent**: Multiple chefs (your program's threads or processes) work simultaneously in the kitchen, with one chef making breakfast, another making lunch, and another making dinner, all at the same time.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkwishna%2Fasyncasyncreactivejava","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkwishna%2Fasyncasyncreactivejava","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkwishna%2Fasyncasyncreactivejava/lists"}