{"id":17354713,"url":"https://github.com/openmohan/javaclassobjectlocks","last_synced_at":"2025-03-27T13:49:05.748Z","repository":{"id":166769865,"uuid":"76830032","full_name":"openmohan/JavaClassObjectLocks","owner":"openmohan","description":null,"archived":false,"fork":false,"pushed_at":"2016-12-19T06:05:28.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T18:16:14.186Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/openmohan.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":"2016-12-19T05:11:50.000Z","updated_at":"2016-12-19T05:19:05.000Z","dependencies_parsed_at":"2023-07-29T12:47:11.661Z","dependency_job_id":null,"html_url":"https://github.com/openmohan/JavaClassObjectLocks","commit_stats":null,"previous_names":["openmohan/javaclassobjectlocks"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmohan%2FJavaClassObjectLocks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmohan%2FJavaClassObjectLocks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmohan%2FJavaClassObjectLocks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openmohan%2FJavaClassObjectLocks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openmohan","download_url":"https://codeload.github.com/openmohan/JavaClassObjectLocks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245858878,"owners_count":20684057,"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":"2024-10-15T17:37:50.015Z","updated_at":"2025-03-27T13:49:05.721Z","avatar_url":"https://github.com/openmohan.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JavaClassObjectLocks\n\n#Class Level Lock\nClass level locking prevents multiple threads to enter in synchronized block in any of all available instances on runtime. This means if in runtime there are 100 instances of DemoClass, then only one thread will be able to execute demoMethod() in any one of instance at a time, and all other instances will be locked for other threads. This should always be done to make static data thread safe.\n\n#Object Level Lock\nObject level locking is mechanism when you want to synchronize a non-static method or non-static code block such that only one thread will be able to execute the code block on given instance of the class\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmohan%2Fjavaclassobjectlocks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenmohan%2Fjavaclassobjectlocks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenmohan%2Fjavaclassobjectlocks/lists"}