Resource sharing between multiple threads

Source: Internet
Author: User

Reproduced in: 52550678

What resources are shared between threads in the same process, and what resources are they exclusive to each other?

The shared resource has a. Heap because the heap is open in the process space, so it is rightfully shared, so new comes out of the shared (16-bit platform on the global heap and local heap, local heap is exclusive) b. Global variables it is not related to a specific function, so it is not related to a particular thread, so it is also a shared C. Static variable Although for local variables, it is in the code "put" in a function, but its location and global variables, stored in the heap opened in the. BSS and. Data segments, which are shared d. Common resources such as files This is shared, and threads that use these common resources must be synchronized. WIN32 provides several ways to synchronize resources, including signals, critical sections, events, and mutexes. The exclusive resources are a. Stack is the exclusive B. Register this may be misunderstood, because the computer registers are physical, each thread to fetch value is not the same? In fact, the thread is stored in a copy, including the program counter PC

Thread-shared environments include the process code snippet, the public data of the process (which leverages the shared data, the threads are easily communicating with each other), the file descriptor that the process opens, the processor of the signal, the current directory of the process, and the process user ID and process group ID.

The process has its own personality as well as its many commonalities. With these personalities, threads can achieve concurrency. These personalities include:
1. Thread ID
Each thread has its own thread ID, which is unique in this process.    The process uses this to identify the thread. 2. Value of the Register group
Because the threads are running concurrently, each thread has its own different running threads, and when switching from one thread to another, the state of the Register collection of the original thread must be saved so that the thread can be restored in the future when it is re-switched to. 3. The stack of threads
The stack is necessary to ensure that the thread runs independently.
A thread function can call a function, and the called function can be nested in layers, so the thread must have its own stack of functions so that the function call can execute normally, not affected by other threads.
4. Error return code
Since many threads in the same process are running concurrently, it is possible for a thread to set the errno value after a system call, while the thread has not handled the error and another thread is running at this point by the scheduler, so that the error value can be modified.
Therefore, different threads should have their own error return code variable.
5. Thread's Signal Shield code
Because each thread is interested in a different signal, the thread's signal masking code should be managed by the thread itself. But all the threads share the same signal processor.
6. Priority of Threads
Because the thread needs to be dispatched as if it were a process, there must be a parameter that can be used for scheduling

Number, this parameter is the priority of the thread.

Resource sharing between multiple threads

Related Article

Contact Us

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.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.