René's URL Explorer Experiment


Title: GitHub - lml2468/java-concurrency: Checklist for code reviews

Open Graph Title: GitHub - lml2468/java-concurrency: Checklist for code reviews

X Title: GitHub - lml2468/java-concurrency: Checklist for code reviews

Description: Checklist for code reviews. Contribute to lml2468/java-concurrency development by creating an account on GitHub.

Open Graph Description: Checklist for code reviews. Contribute to lml2468/java-concurrency development by creating an account on GitHub.

X Description: Checklist for code reviews. Contribute to lml2468/java-concurrency development by creating an account on GitHub.

Opengraph URL: https://github.com/lml2468/java-concurrency

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository
route-controllerfiles
route-actiondisambiguate
fetch-noncev2:4e53e5b3-1afd-548d-2e4a-54b105c2a6d8
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idE8EC:46928:F6BC14:15BB8EE:6978D177
html-safe-nonceb6551eb75a0ca9cb50e946634db6bebb66035db9827f81bc0863274ac943bcfa
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFOEVDOjQ2OTI4OkY2QkMxNDoxNUJCOEVFOjY5NzhEMTc3IiwidmlzaXRvcl9pZCI6IjYyMzkwMTg4Mjc2NTcwNDAyNDciLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacc1fbb13d1e0881c2b3390df38741701bdea18fc4c5823ea7fd0ef5030db5f859
hovercard-subject-tagrepository:187422273
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location//
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/lml2468/java-concurrency
twitter:imagehttps://opengraph.githubassets.com/bec84634bf3641847a85b617714cca2c31def5cbe7746b23d236f770b8028a19/lml2468/java-concurrency
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/bec84634bf3641847a85b617714cca2c31def5cbe7746b23d236f770b8028a19/lml2468/java-concurrency
og:image:altChecklist for code reviews. Contribute to lml2468/java-concurrency development by creating an account on GitHub.
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None8a71ca1f7ab5436216e1df86f398ef7a51ed3152c90e3f7332fc70cf97fcb9d6
turbo-cache-controlno-preview
go-importgithub.com/lml2468/java-concurrency git https://github.com/lml2468/java-concurrency.git
octolytics-dimension-user_id39320777
octolytics-dimension-user_loginlml2468
octolytics-dimension-repository_id187422273
octolytics-dimension-repository_nwolml2468/java-concurrency
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forktrue
octolytics-dimension-repository_parent_id174599241
octolytics-dimension-repository_parent_nwocode-review-checklists/java-concurrency
octolytics-dimension-repository_network_root_id174599241
octolytics-dimension-repository_network_root_nwocode-review-checklists/java-concurrency
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releaseeaed570eead52a9920afef75dc3eb6d826fdc5ef
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/lml2468/java-concurrency#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Flml2468%2Fjava-concurrency
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Flml2468%2Fjava-concurrency
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=lml2468%2Fjava-concurrency
Reloadhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency
Reloadhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency
Reloadhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency
lml2468 https://patch-diff.githubusercontent.com/lml2468
java-concurrencyhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency
code-review-checklists/java-concurrencyhttps://patch-diff.githubusercontent.com/code-review-checklists/java-concurrency
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Flml2468%2Fjava-concurrency
Fork 0 https://patch-diff.githubusercontent.com/login?return_to=%2Flml2468%2Fjava-concurrency
Star 0 https://patch-diff.githubusercontent.com/login?return_to=%2Flml2468%2Fjava-concurrency
0 stars https://patch-diff.githubusercontent.com/lml2468/java-concurrency/stargazers
155 forks https://patch-diff.githubusercontent.com/lml2468/java-concurrency/forks
Branches https://patch-diff.githubusercontent.com/lml2468/java-concurrency/branches
Tags https://patch-diff.githubusercontent.com/lml2468/java-concurrency/tags
Activity https://patch-diff.githubusercontent.com/lml2468/java-concurrency/activity
Star https://patch-diff.githubusercontent.com/login?return_to=%2Flml2468%2Fjava-concurrency
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Flml2468%2Fjava-concurrency
Code https://patch-diff.githubusercontent.com/lml2468/java-concurrency
Pull requests 0 https://patch-diff.githubusercontent.com/lml2468/java-concurrency/pulls
Actions https://patch-diff.githubusercontent.com/lml2468/java-concurrency/actions
Projects 0 https://patch-diff.githubusercontent.com/lml2468/java-concurrency/projects
Security 0 https://patch-diff.githubusercontent.com/lml2468/java-concurrency/security
Insights https://patch-diff.githubusercontent.com/lml2468/java-concurrency/pulse
Code https://patch-diff.githubusercontent.com/lml2468/java-concurrency
Pull requests https://patch-diff.githubusercontent.com/lml2468/java-concurrency/pulls
Actions https://patch-diff.githubusercontent.com/lml2468/java-concurrency/actions
Projects https://patch-diff.githubusercontent.com/lml2468/java-concurrency/projects
Security https://patch-diff.githubusercontent.com/lml2468/java-concurrency/security
Insights https://patch-diff.githubusercontent.com/lml2468/java-concurrency/pulse
Brancheshttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/branches
Tagshttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/tags
https://patch-diff.githubusercontent.com/lml2468/java-concurrency/branches
https://patch-diff.githubusercontent.com/lml2468/java-concurrency/tags
10 Commitshttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/commits/master/
https://patch-diff.githubusercontent.com/lml2468/java-concurrency/commits/master/
README.mdhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/blob/master/README.md
README.mdhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/blob/master/README.md
_config.ymlhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/blob/master/_config.yml
_config.ymlhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/blob/master/_config.yml
READMEhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#code-review-checklist-java-concurrency
Concurrency is rationalized?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#rationalize
Can use patterns to simplify concurrency?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-patterns
Thread-safety is justified in comments?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-document
Class (method, field) has concurrent access documentation?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-document
Threading model of a subsystem (class) is described?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#threading-flow-model
Concurrent control flow (or data flow) of a subsystem (class) is described? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#threading-flow-model
Class is documented as immutable, thread-safe, or not thread-safe?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#immutable-thread-safe
Applied concurrency patterns are pronounced?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#name-patterns
ConcurrentHashMap is not stored in a variable of Map type?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#concurrent-map-type
compute()-like methods are not called on a variable of ConcurrentMap type?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#chm-type
@GuardedBy annotation is used?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#guarded-by
Safety of benign races is explained?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#document-benign-race
Each use of volatile is justified?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-volatile
Field that is neither volatile nor annotated with @GuardedBy has a comment?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#plain-field
No "extra" (pseudo) thread safety?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#pseudo-safety
No atomics on which only get() and set() are called?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#redundant-atomics
Class (method) needs to be thread-safe?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#unneeded-thread-safety
No put() or remove() calls on a ConcurrentHashMap after get() or containsKey()? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#chm-race
No point accesses to a non-thread-safe collection outside of critical sections? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#unsafe-concurrent-point-read
Iteration over a non-thread-safe collection doesn't leak outside of a critical section? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#unsafe-concurrent-iteration
Non-trivial object is not returned from a getter in a thread-safe class? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#concurrent-mutation-race
No separate getters to an atomically updated state?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#moving-state-race
No state used for making decisions or preparing data inside a critical section is read outside? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#read-outside-critical-section-race
No race conditions are possible between the program and users or other programs? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#outside-world-race
No race conditions are possible on the file system?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#outside-world-race
Can use concurrency utility instead of Object.wait()/notify()?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#avoid-wait-notify
Can use Guava’s Monitor instead of a standard lock with conditional waits?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#guava-monitor
Can avoid nested critical sections?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#avoid-nested-critical-sections
Locking order for nested critical sections is documented?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#document-locking-order
Dynamically determined locks for nested critical sections are ordered?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#dynamic-lock-ordering
No extension API calls within critical sections?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#non-open-call
Critical section is as small as possible?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#minimize-critical-sections
Can use ConcurrentHashMap.compute() or Guava's Striped for per-key locking? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#increase-locking-granularity
Can replace blocking collection or a queue with a concurrent one?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#non-blocking-collections
Can use ClassValue instead of ConcurrentHashMap?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-class-value
Considered ReadWriteLock (or StampedLock) instead of a simple lock?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#read-write-lock
StampedLock is used instead of ReadWriteLock when reentrancy is not needed? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-stamped-lock
Considered LongAdder instead of an AtomicLong for a "hot field"? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#long-adder-for-hot-fields
Lazy initialization of a field should be thread-safe?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#lazy-init-thread-safety
Considered double-checked locking for a lazy initialization to improve performance? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-dcl
Considered eager initialization instead of a lazy initialization to simplify code? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#eager-init
Double-checked locking follows the SafeLocalDCL pattern?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#safe-local-dcl
Can do lazy initialization with a benign race and without locking to improve performance? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#lazy-init-benign-race
Non-blocking code has enough comments to make line-by-line checking as easy as possible? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#check-non-blocking-code
Can use immutable POJO + compare-and-swap operations to simplify non-blocking code? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#swap-state-atomically
Thread is named?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#name-threads
Can use ExecutorService instead of creating a new Thread each time some method is called? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#reuse-threads
No network I/O in a CachedThreadPool?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#cached-thread-pool-no-io
No blocking (incl. I/O) operations in a ForkJoinPool or in a parallel Stream pipeline? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#fjp-no-blocking
Can execute non-blocking computation in FJP.commonPool() instead of a custom thread pool? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-common-fjp
Parallel Stream computation takes more than 100us in total?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-parallel-stream-use
Comment before a parallel Streams pipeline explains how it takes more than 100us in total? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-parallel-stream-use
Interruption status is restored before propagating a wrapped InterruptedException? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#restore-interruption
InterruptedException is swallowed only in the following kinds of methods? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#interruption-swallowing
InterruptedException swallowing is documented for a method?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#interruption-swallowing
Can use Guava's Uninterruptibles to avoid InterruptedException swallowing? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#interruption-swallowing
Future is canceled upon catching an InterruptedException or a TimeoutException on get()? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#cancel-future
nanoTime() values are compared in an overflow-aware manner?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#nano-time-overflow
currentTimeMillis() is not used to measure time intervals and timeouts? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#time-going-backward
Units for a time variable are identified in the variable's name or via TimeUnit?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#time-units
Negative timeouts and delays are treated as zeros?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#treat-negative-timeout-as-zero
close() is concurrently idempotent in a class with a Cleaner or finalize()? https://patch-diff.githubusercontent.com/lml2468/java-concurrency#thread-safe-close-with-cleaner
Method accessing native state calls reachabilityFence() in a class with a Cleaner or finalize()?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#reachability-fence
Cleaner or finalize() is used for real cleanup, not mere reporting?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#finalize-misuse
Considered making a class with native state thread-safe?https://patch-diff.githubusercontent.com/lml2468/java-concurrency#thread-safe-native
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#design
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#rationalize
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-patterns
RC.5https://patch-diff.githubusercontent.com/lml2468/java-concurrency#moving-state-race
NB.2https://patch-diff.githubusercontent.com/lml2468/java-concurrency#swap-state-atomically
persistent data structureshttps://en.wikipedia.org/wiki/Persistent_data_structure
Parallel Streams https://patch-diff.githubusercontent.com/lml2468/java-concurrency#parallel-streams
TE.4https://patch-diff.githubusercontent.com/lml2468/java-concurrency#fjp-no-blocking
TE.5https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-common-fjp
Dl.1https://patch-diff.githubusercontent.com/lml2468/java-concurrency#avoid-nested-critical-sections
CSPhttps://en.wikipedia.org/wiki/Communicating_sequential_processes
SEDAhttps://en.wikipedia.org/wiki/Staged_event-driven_architecture
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#documentation
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-document
PS.1https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-parallel-stream-use
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#threading-flow-model
Dn.2https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-patterns
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#immutable-thread-safe
Error Pronehttps://errorprone.info/
bug pattern https://errorprone.info/bugpattern/Immutable
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#name-patterns
Dn.2https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-patterns
the relevant sectionhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency#lazy-init
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#concurrent-map-type
RC.1 https://patch-diff.githubusercontent.com/lml2468/java-concurrency#chm-race
an inspectionhttps://github.com/apache/incubator-druid/pull/6898/files#diff-3aa5d63fbb1f0748c146f88b6f0efc81R239
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#chm-type
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#guarded-by
statically check for unguarded accesses to fields and methods with @GuardedBy annotationshttps://errorprone.info/bugpattern/GuardedBy
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#document-benign-race
RC.5https://patch-diff.githubusercontent.com/lml2468/java-concurrency#moving-state-race
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-volatile
Java Memory Modelhttps://docs.oracle.com/javase/specs/jls/se11/html/jls-17.html#jls-17.4
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#plain-field
Dc.1 https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-document
RC.2https://patch-diff.githubusercontent.com/lml2468/java-concurrency#unsafe-concurrent-point-read
RC.3https://patch-diff.githubusercontent.com/lml2468/java-concurrency#unsafe-concurrent-iteration
RC.4https://patch-diff.githubusercontent.com/lml2468/java-concurrency#concurrent-mutation-race
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#excessive-thread-safety
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#pseudo-safety
safe local double-checked locking patternhttp://hg.openjdk.java.net/code-tools/jcstress/file/9270b927e00f/tests-custom/src/main/java/org/openjdk/jcstress/tests/singletons/SafeLocalDCL.java#l71
excessive for correctnesshttps://shipilev.net/blog/2014/safe-public-construction/#_correctness
*https://shipilev.net/blog/2014/safe-public-construction/#_safe_initialization
Dc.3https://patch-diff.githubusercontent.com/lml2468/java-concurrency#immutable-thread-safe
UnsafeLocalDCLhttp://hg.openjdk.java.net/code-tools/jcstress/file/9270b927e00f/tests-custom/src/main/java/org/openjdk/jcstress/tests/singletons/UnsafeLocalDCL.java#l71
the section about double-checked lockinghttps://patch-diff.githubusercontent.com/lml2468/java-concurrency#lazy-init
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#redundant-atomics
Dc.9 https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-volatile
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#unneeded-thread-safety
Dc.https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-volatile
Dn.1https://patch-diff.githubusercontent.com/lml2468/java-concurrency#rationalize
Dc.1https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-document
CN.4https://patch-diff.githubusercontent.com/lml2468/java-concurrency#thread-safe-native
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#race-conditions
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#chm-race
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#unsafe-concurrent-point-read
this threadhttp://cs.oswego.edu/pipermail/concurrency-interest/2018-September/016526.html
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#unsafe-concurrent-iteration
Sc.3https://patch-diff.githubusercontent.com/lml2468/java-concurrency#non-blocking-collections
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#concurrent-mutation-race
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#moving-state-race
NB.2https://patch-diff.githubusercontent.com/lml2468/java-concurrency#swap-state-atomically
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#read-outside-critical-section-race
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#outside-world-race
java.nio.file.Fileshttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/Files.html
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#replacing-locks-with-concurrency-utilities
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#avoid-wait-notify
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#guava-monitor
Monitorhttps://google.github.io/guava/releases/27.0.1-jre/api/docs/com/google/common/util/concurrent/Monitor.html
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#avoiding-deadlocks
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#avoid-nested-critical-sections
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#document-locking-order
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#dynamic-lock-ordering
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#non-open-call
Sc.1https://patch-diff.githubusercontent.com/lml2468/java-concurrency#minimize-critical-sections
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#improving-scalability
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#minimize-critical-sections
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#increase-locking-granularity
Guava’s Stripedhttps://github.com/google/guava/wiki/StripedExplained
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#non-blocking-collections
SnapTreehttps://github.com/nbronson/snaptree
more efficienthttps://github.com/apache/incubator-druid/pull/6719
the JCTools libraryhttps://www.baeldung.com/java-concurrency-jc-tools
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-class-value
ClassValuehttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ClassValue.html
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#read-write-lock
Sc.2https://patch-diff.githubusercontent.com/lml2468/java-concurrency##increase-locking-granularity
this commenthttps://medium.com/@leventov/interesting-perspective-thanks-i-didnt-think-about-this-before-e044eec71870
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-stamped-lock
StampedLockhttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/locks/StampedLock.html
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#long-adder-for-hot-fields
LongAdderhttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/atomic/LongAdder.html
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#lazy-initialization-and-double-checked-locking
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#lazy-init-thread-safety
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-dcl
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#safe-local-dcl
SafeLocalDCLhttp://hg.openjdk.java.net/code-tools/jcstress/file/9270b927e00f/tests-custom/src/main/java/org/openjdk/jcstress/tests/singletons/SafeLocalDCL.java#l71
ETS.1https://patch-diff.githubusercontent.com/lml2468/java-concurrency#pseudo-safety
UnsafeLocalDCLhttp://hg.openjdk.java.net/code-tools/jcstress/file/9270b927e00f/tests-custom/src/main/java/org/openjdk/jcstress/tests/singletons/UnsafeLocalDCL.java#l71
Wishful Thinking: Happens-Before Is The Actual Orderinghttps://shipilev.net/blog/2016/close-encounters-of-jmm-kind/#wishful-hb-actual
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#eager-init
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#lazy-init-benign-race
Safe Publication this and Safe Initialization in Javahttps://shipilev.net/blog/2014/safe-public-construction/
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#non-blocking-and-partially-blocking-code
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#check-non-blocking-code
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#swap-state-atomically
RC.5https://patch-diff.githubusercontent.com/lml2468/java-concurrency#moving-state-race
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#threads-and-executors
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#name-threads
forbidden-apishttps://github.com/policeman-tools/forbidden-apis
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#reuse-threads
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#cached-thread-pool-no-io
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#fjp-no-blocking
managedBlock()https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ForkJoinPool.html#managedBlock(java.util.concurrent.ForkJoinPool.ManagedBlocker)
Parallel Stream Guidancehttp://gee.cs.oswego.edu/dl/html/StreamParallelGuidance.html
the section about parallel Streamshttps://patch-diff.githubusercontent.com/lml2468/java-concurrency#parallel-streams
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#use-common-fjp
TE.1https://patch-diff.githubusercontent.com/lml2468/java-concurrency#name-threads
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#parallel-streams
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#justify-parallel-stream-use
100 microsecondshttp://gee.cs.oswego.edu/dl/html/StreamParallelGuidance.html
TE.4https://patch-diff.githubusercontent.com/lml2468/java-concurrency#fjp-no-blocking
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#thread-interruption-and-future-cancellation
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#restore-interruption
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#interruption-swallowing
examplehttp://jcip.net/listings/NoncancelableTask.java
Uninterruptibleshttps://google.github.io/guava/releases/27.0.1-jre/api/docs/com/google/common/util/concurrent/Uninterruptibles.html
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#cancel-future
canceledhttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/Future.html#cancel(boolean)
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#time
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#nano-time-overflow
the documentationhttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/System.html#nanoTime()
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#time-going-backward
JDK-8184271https://bugs.openjdk.java.net/browse/JDK-8184271
leap secondhttps://en.wikipedia.org/wiki/Leap_second
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#time-units
TimeUnithttps://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/TimeUnit.html
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#treat-negative-timeout-as-zero
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#thread-safety-of-cleaners-and-native-code
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#thread-safe-close-with-cleaner
JLS 12.6.2https://docs.oracle.com/javase/specs/jls/se11/html/jls-12.html#jls-12.6.2
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#reachability-fence
CN.4https://patch-diff.githubusercontent.com/lml2468/java-concurrency#thread-safe-native
any method with an empty body is an effective emulation of reachabilityFence()http://mail.openjdk.java.net/pipermail/core-libs-dev/2018-February/051312.html
Reference.reachabilityFence()https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ref/Reference.html#reachabilityFence(java.lang.Object)
this discussionhttp://cs.oswego.edu/pipermail/concurrency-interest/2015-December/014609.html
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#finalize-misuse
async-profilerhttps://github.com/jvm-profiling-tools/async-profiler
async-profiler -e mallochttps://stackoverflow.com/questions/53576163/interpreting-jemaloc-data-possible-off-heap-leak/53598622#53598622
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#thread-safe-native
CN.2https://patch-diff.githubusercontent.com/lml2468/java-concurrency#reachability-fence
java.util.zip.Deflaterhttp://hg.openjdk.java.net/jdk/jdk/file/a772e65727c5/src/java.base/share/classes/java/util/zip/Deflater.java
VarHandle.storeStoreFence()https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/invoke/VarHandle.html#storeStoreFence()
#https://patch-diff.githubusercontent.com/lml2468/java-concurrency#forbid-jdk-internally-synchronized
forbidden-apishttps://github.com/policeman-tools/forbidden-apis
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#reading-list
Memory Modelhttps://docs.oracle.com/javase/specs/jls/se11/html/jls-17.html#jls-17.4
final field semanticshttps://docs.oracle.com/javase/specs/jls/se11/html/jls-17.html#jls-17.5
Safe Publication and Safe Initialization in Javahttps://shipilev.net/blog/2014/safe-public-construction/
Java Memory Model Pragmaticshttps://shipilev.net/blog/2014/jmm-pragmatics/
Close Encounters of The Java Memory Model Kindhttps://shipilev.net/blog/2016/close-encounters-of-jmm-kind/
When to use parallel streamshttp://gee.cs.oswego.edu/dl/html/StreamParallelGuidance.html
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#authors
post on Mediumhttps://medium.com/@leventov/code-review-checklist-java-concurrency-49398c326154
Roman Leventovhttps://github.com/leventov
Marko Topolnikhttps://stackoverflow.com/users/1103872/marko-topolnik
Matko Medenjakhttps://github.com/mmedenjak
Chris Vesthttps://github.com/chrisvest
Simon Willnauerhttps://github.com/s1monw
Ben Maneshttps://github.com/ben-manes
Gleb Smirnovhttps://github.com/gvsmirnov
Andrey Satarinhttps://github.com/asatarin
Benedict Jinhttps://github.com/asdf2014
Petr Janečekhttps://stackoverflow.com/users/1273080/petr-jane%C4%8Dek
https://patch-diff.githubusercontent.com/lml2468/java-concurrency#no-copyright
Readme https://patch-diff.githubusercontent.com/lml2468/java-concurrency#readme-ov-file
Please reload this pagehttps://patch-diff.githubusercontent.com/lml2468/java-concurrency
Activityhttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/activity
0 starshttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/stargazers
0 watchinghttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/watchers
0 forkshttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/forks
Report repository https://patch-diff.githubusercontent.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Flml2468%2Fjava-concurrency&report=lml2468+%28user%29
Releaseshttps://patch-diff.githubusercontent.com/lml2468/java-concurrency/releases
Packages 0https://patch-diff.githubusercontent.com/users/lml2468/packages?repo_name=java-concurrency
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.