The following information is transferred from http://tutorials.jenkov.com/java-concurrency/same-threading.html (using Google Translate):The same thread is a concurrency model in which a single-threaded system is extended to n single-threaded systems. The result is n single-threaded systems running in parallel.The same threading system is not a purely single-threa
Learning Java concurrency has been one months, feel some things to learn a moment will forget, do some notes but not the system, Java concurrency so Big "system", need to summarize, organize to conquer it. I hope that colleagues to learn Java concurrent programming, common p
pl1700-Practical Java High concurrency program designLearning to be early, drip records, learning is progress!Essay background: In a lot of times, many of the early friends will ask me: I am from other languages transferred to the development of the program, there are some basic information to learn from us, your frame feel too big, I hope to have a gradual tutorial or video to learn just fine. For learning
[Practical Java high concurrency Program Design 7] Let threads help each other-Implementation of SynchronousQueue and synchronousqueue
[Practice: Java high concurrency Program Design 1] pointer in Java: Unsafe class
[Java high
is preceded by the Execute () method with the Synchronized keyword, the execution result of this example program will vary greatly. If you do not add the Synchronized keyword, two threads execute the Execute () method at the same time, and the output is two sets of concurrency. If you add the Synchronized keyword, you will first output a set of 0 to 9 and then output the next set, which means that two threads are executed sequentially. 2. Multi-
downgrade, follow the acquisition of write lock, read lock and then release the order of the write lock, write lock can be downgraded to read lock.
Locksupport provides a park unpark static method of blocking, waking.
Condition Interface : Any Java object, has a set of monitor methods, including, wait() and notify() so on, these methods and synchronized keyword Mates can implement the wait/notification mode, the Condition interface also provides
on.CAS looks cool, but it can cause "ABA problems".The CAS algorithm implements an important premise that needs to take out the data at some point in memory, and compare and replace at the next moment, then the time difference class will cause the data to change.For example, a thread one takes a from the memory location V, when another thread two also takes a from memory, and two does something to B, and two then turns the data in the V position into a, when the CAS operation finds that the mem
getqueuelength () { int n = 0; for (Node p = tail; P! = null; p = p.prev) { if (p.thread! = null) ++n; } return n;}Iterate from the end of the tail and accumulate N. Of course, this method and the method above may be inaccurate, because it is possible for the other threads to add node to the end of the queue when traversing.The rest of the methods are similar, you can go to see for yourself.Legacy issuesThe Reentrantlock process has been basically clear to the mana
Runnable object to execute at some point in the future. Functionally similar to timers, which are used very frequently in web systems.SemaphoreA normal lock (from a concurrent.locks or built-in synchronized lock) allows only one task to access a resource at any given time, while a count semaphore allows n tasks to access the resource at the same time. In fact, the semaphore is less used: 1. Resource access is mostly only 1 to 2 of the difference, there is no 2 to many differences, thread-safe o
(). GetData ());
Continue
}
if (Event.asstartelement (). GetName (). Getlocalpart ()
. Equals (current)) {
event = Eventreader.nextevent ();
Item.setcurrent (Event.ascharacters (). GetData ());
Continue
}
if (Event.asstartelement (). GetName (). Getlocalpart ()
. Equals (INTERACTIVE)) {
event = Eventreader.nextevent ();
Item.setinteractive (Event.ascharacters (). GetData ());
Continue
}
}
If we reach the ' end of ' an item element, we add it to the list
if (Event.isendelement ()) {
EndE
-threaded execution is faster, because the "array sum" itself does not require additional resources and is not blocked.Instead, multiple threads increase the time overhead of "thread scheduling".You can also see that the CPU calculation is very fast. The "200000000" 200 million integers add up to a time of less than 0.1 seconds.episodeWhen I first looked at the code, I misunderstood it. Think "the number of CPU cores split task", this time "multithreading" is "parallel".In fact, not necessarily,
In the daily Java code development process, it is inevitable to have multi-threaded requirements, mastering the Java multithreading and concurrency mechanism is the Java programmer to write more robust and efficient code base. I find the domestic published on the Java Multi-
Jakob Jenkov Translator:simon-sz proofreading: Fang Feihttp://tutorials.jenkov.com/ java-concurrency/index.html In the past single-CPU era, single-tasking can only execute a single program at a point in time. Later in the multitasking phase, computers can perform multitasking or multiple processes in parallel at the same point in time. Although it is not really the "same point in time", but multiple task
operations of the suspend and resume threads need to be completed in the kernel state, which brings a lot of pressure to the concurrency of the system. In contrast, using the lock object provided by Java provides a higher performance. Brian Goetz a set of throughput comparisons between the two locks in JDK1.5, single-core processors, and dual Xeon processors, and found that the synchronized throughput drop
, and it's just a basic understanding of it. Volatile is slightly lighter than synchronized, and in some cases it can replace synchronized, but it does not completely replace synchronized, which can only be used on certain occasions. Use it must meet the following two conditions:
The write operation of the variable does not depend on the current value;
The variable is not contained in an invariant that has other variables.
Volatile is often used in two or two scenario
程未做完,主线程等待当前线程做完后再往下走publicfinalvoidjointhrows InterruptedExceptionpublicfinalsynchronizedvoidjoin(longthrows InterruptedExceptionThird, the Guardian threadSilently in the background to complete a number of systematic services, such as garbage collection thread, JIT thread can be understood as a daemon threadIn a Java application, the Java virtual machine naturally exits when only the daemon threadFour, Thr
fact, Cyclicbarrier also has a reset method that describes the manual immediately interrupts all threads, restores the barrier points, and performs the next set of tasks. That is, the cost of maintenance may be less costly than recreating a new barrier point (less synchronization, less management of the previous cyclicbarrier, and so on).Originally want to and semaphore together, finally found out after a bit long, but also not conducive to understanding and absorption, so put to the next artic
sharing the object in multiple threads).Note that the object itself will not escape at the time of publication.Private one object;Control the access path of the object;Plus the appropriate locking mechanism.Instance closure is one of the simplest ways to build a thread-safe class, and it also gives you more flexibility in the choice of lock strategies. Instance closures allow different state variables to be protected by different locks, while other forms of locking require the same lock through
that are completely unrelated to it.The fourth method, usingcombination (composition)The way.Public class ImprovedlistThe improvedlist adds an extra layer of locking through its own built-in lock. It does not care whether the underlying list is thread-safe, and even if the list is not thread-safe or modifies its yoke, improved provides a consistent locking mechanism for thread safety. Although the additional synchronization layer can cause slight performance loss, improvedlist is more robust t
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.