What is Multithreading?
Multithreading (English: multithreading) refers to the technology to implement multiple threads concurrent execution from software or hardware. Computers with multithreading capabilities can perform more than one thread at the same time due to hardware support, thereby improving overall processing performance. Systems with this capability include symmetric multiprocessors, multi-core processors, and Chip-level multithreading or Simultaneous multithreading processors. In a program, these independently running program fragments are called "Threads", and the concept of programming with it is called "Multithreading".
- In computer programming, a basic concept is to
- In most research areas, the thread scheduler is required to be able to quickly select one of the ready threads to run instead of running one by one to reduce efficiency. So it is important for the scheduler to distinguish thread priorities. The thread scheduler may exist in the form of hardware, software, or both hardware and software.
- Another area of research is what kind of events (cache failure, internal continuity, use
- The goal of multi-threaded hardware support is to support rapid switching between ready-state threads and execution-state threads. To achieve this goal, you need hardware to implement
- definition
- English: Thread
- Every running system
- Use threads to take long
- If there are a large number of threads, it will affect performance because
- In essence and structure,
- Java's support for multi-threading is very powerful. It shields many technical details, so that we can easily develop multi-threaded
- The ISO C ++ 11 standard provides the std :: thread class in STL, so multithreading becomes very easy.
#include <thread> using namespace std; void threadFunc () { // Here write the content of the thread} int main () { threadt (threadFunc); // start thread t.join (); // Wait for the thread to finish return 0; }
- One adopted
- With this technology, Intel became the first company to implement two logical threads in one physical processor. After
- As of 2014, in terms of application environment, hyper-threading technology can significantly speed up certain applications by 10 to 15%. In addition to Intel's Hyper-Threading introduced in Nehalem, Atom, etc., regardless of IBM's Power series, Sun's T1 / T2 / Rock series and other processor architectures have applied similar SMT synchronous multi-threading technology, bringing a large number of transistors A significant increase in multi-threaded performance.
- An AMD engineer frankly told the media recently that not supporting single-core multi-threading technology makes Opteron processors look inferior to Intel's low-end Xeon. Allegedly, AMD's internal senior officials have acknowledged that the failure to introduce such technologies early was a mistake in technology selection.
- However, in an interview, Patrick Patla, AMD s vice president and general manager of the server workstation business, did not reveal the future of single-core multithreading technology, but continued to reiterate the published Opteron roadmap: "If you look at our roadmap and our The performance in the multi-threaded processor market will know that we believe that each thread has a complete core is the best choice at present. In 2010, we will launch 12-core processors, 16-core in 2011. We believe in the future We will be able to fully support 48- or 64-threaded environments within this year. Let's see what it will bring from 2012 to 2013. "
- Since it was only 16 cores in 2011, it seems that it is not normal to jump directly to 48 or even 64 cores from 2012 to 2013. In addition, Patrick Patla was talking about "core" in the previous sentences, and later turned into "thread". It seems to imply that AMD may adopt single-core multi-threading technology at that time.