seen from France
seen from Yemen

seen from China

seen from United States
seen from Germany

seen from Spain
seen from Russia

seen from Türkiye
seen from China
seen from United States
seen from United States
seen from China
seen from Pakistan
seen from Türkiye
seen from Germany
seen from China
seen from China

seen from Malaysia
seen from Brazil
seen from United States
Learn Java Programming - Creating a Thread Part Three Tutorial
This tutorial will directly build on concepts and source code from my Creating a Thread Part One Tutorial and Creating a Thread Part Two Tutorial. In this tutorial I will demonstrate how to create multiple child threads using both versions of my custom prime-number-calculating class. I will also introduce you to a concept called thread safety. A method in Java is considered to be thread safe if it can be used by multiple threads without causing any problems. You will see how easy it is to get wrapped up in the power of multithreading without considering the side-effects of thread safety.
http://www.objc.io/issue-2/thread-safe-class-design.html
스레드 안전한가?
http://iilii.egloos.com/m/5350490
http://iilii.egloos.com/m/5564982 테스트 : http://devyongsik.tistory.com/m/post/view/id/649
Thread safety in Scoped Container Data Access
Talking about threads, first phrase that used to strike me was "Thread Safe Code". But is code the real problem? Certainly not. The problem is the data that multiple threads are accessing simultaneously. Reassigning the same references or calling non thread safe state changing methods in parallel is the real problem. The term Scoped container is generally used for HTTP Session, Request or ServletContext; which can be used for making the web application stateful. But none of these are designed to be thread safe. But also apart from these containers, i am considering containers as varied as the object or query caches to even simple globally accessible map. Following are the few strategies I have gathered from seeing code, reading articles and with few mistakes. They are in the order I would try to implement.
Use only immutable objects in cache - This way you will never loose atomicity. The perennial problem of corrupt data can be completely avoided.
Don't mutate after set - Even if you are using mutable objects, make it a coding practice that once object is passed to cache none of the mutators are called. This can be grave problem with clustered applications where caches are synchronized across multiple instances. The process of synchronization is started with the object reference update or addition, and very much possible that its completed before the object mutators are called. This way two supposedly synchronized caches differ in their object states.
Use java.util.concurrent.atomic package - This package provides wrappers around regular java datatypes and generic classes like AtomicReference which can be used to access regular objects as if they were volatile references. You can get more details here..
The above mentioned points by no means are alternative to synchronization or locks (except point 3), but can be used as supplimentory coding practices for better code quality.
PHP: ts は Thread Safe で nts は Non Thread Safe
よく eAccelerator や XDebug の dll とか持ってくるときに `ts` とか `nts` とかサフィックスがついてることがある。 `Thread Safe` と `Non Thread Safe` の略だったようだ。 ts ... Thread Safe nts ... Non Thread Safe それぞれの違いはこちら([PHP のNon Thread Safe とThread Safe の違い](http://gete.blog.shinobi.jp/Entry/41/))が参考になる。