Pthread series functions and simple multi-threaded server-side programs
First, POSIX thread overview
We know that processes are running in separate address spaces, and that sharing data between processes requires interprocess communication, in some cases requiring simultaneous execution of multiple control processes in a single process, where threads are used, such as downloading software for a graphical
Thread-specific data for thread-specific properties and threads
One, POSIX thread properties
The POSIX line threading defines the Thread Property object pthread_attr_t, which encapsulates the thread properties that the creator of the thread can access and modify. Mainly includes the following properties:
1. Scope (SCOPE)
2. Stack sizes (stack size)
3. Stack
POSIX condition variable and mutex sample producer--Consumer issues
One, POSIX condition variables
A synchronization between threads: Thread A needs to wait for a condition to be set up to continue, now that the condition is not established, thread a blocks the wait, and thread B causes the condition to be created during execution, and wakes thread A to continu
POSIX semaphore and mutex sample producer--Consumer issues
One, POSIX signal volume
The concept of semaphores see here (http://www.bianceng.cn/OS/Linux/201308/37243.htm). The System V Semaphore is also mentioned earlier, and now it says the POSIX semaphore.
System V semaphores can only be used for interprocess synchronization, and the
threads and one consumer thread, and the producer's sleep time is five times that of the consumer, from the dynamic output, we can see that there is basically a dynamic balance, that is, five producers have produced five items at once, and the consumer consumes one copy for 1 second, just before the producer continues production.
Iv. Introduction to spin locks and read/write locks
(1) spin locks
A spin lock is similar to a mutex lock, and has higher
For original blog reposted, contact the blogger!
This project has been hosted in my Git remote Library:Https://github.com/yue9944882/Snow
Project objectives
Major Functionality
Development Environment:CentOS7-Qt4
Implement a LINUX-based multi-thread download device with the following functions:
(HTTP only) multi-thread Remote resource download
(Pause/resume) resumable upload
Main technologies of the project
Major Technique
POSIX
C-line Chengdai-generation debugging, POSIX Threads Generation Code(CSCI 363) Project--POSIX ThreadsInstructionsThis program sorts strings using "enzymes". An enzyme was a function that sorts the consecutiveCharacters. We define one enzyme per pair of consecutive characters; These enzymes workingTogether in parallel can sort the entire string. We use Pthreads to
resources. Otherwise, a large amount of memory resources will be wasted.Iii. Thread resource mutual lock
Since threads share resources, mutual exclusion is very important. Mutex provides a lock method for the mutex object to obtain the exclusive resource. Other threads attempting to lock the mutex will be blocked and suspended until the thread that locks the resource is unlocked.
When using thread
POSIX thread:
A completed thread/process consists of three parts: code + Data + Memory stack. When a sub-thread and sub-process are created,
For fork () to create a sub-process, make a copy of all three parts, including the file descriptor, virtual memory, and the sub-process to close the file descriptor will not affect the descriptor in the parent process;
When pthread_create () is used to create a sub-thread, only the memory stack is copied, and oth
When a function in a thread needs to create private data, the private data remains consistent between calls to the function, and the data can be statically allocated to the memory, when we adopt a naming range, we may be able to implement it in functions, files (static), or global (extern ). But it is not that simple when it comes to threads. In a single-threaded program, we often use global variables to share data among multiple functions. In a multi
It is particularly simple to use threads in Java to implement the Runnable interface or inherit the Thread.
The thread used in NDK can directly call the java thread in the Activity, or start the thread through JNI, Which is originated from the thread library in POSIX.
Use pthread in POSIX
Header file
If the Posix th
In a multi-threaded environment, data space is shared by all threads. Generally, global variables are shared by all threads.
Sometimes it is necessary to provide global variables private to the thread:-Cross-function access (global );-Valid only in a thread (private ).
For exampleProgramEach thread may need to maintain a linked list. The maintenance means are the same, but the data in the linked list is
completion.The code for the main thread is similar to the new thread, first locking the workspace, reading the text into it, and unlocking it to allow other threads to access it and count the number of characters. Periodically locks the mutex and checks whether the number of characters has been counted. If you still need to wait, release the mutex.This method of finding results through the theory is not a good way to become. In the actual change, we
Yang Sha ZhouOctober 2001
This is a column about POSIX thread programming. On the basis of clarifying the concept, the author will detail the POSIX thread library API. This is the third article to introduce thread synchronization.
I. mutex lockAlthough the IPC semaphore mechanism can also be used in POSIX thread to
POSIX thread (pthread) programming defines a set of standard C programming language types, functions, and constants-And pthreads provides a powerful thread management tool. To make full use of pthreads, you must avoid common errors. A common error is that you forget to join a thread that can be joined, resulting in Memory leakage and increased workload. In this s
POSIX multi-thread programming
1. advantages over multi-process
Some form of additional kernel overhead is imposed to reduce performance.
In most cases, IPC is not a "natural" extension of code. Generally, the complexity of the program is greatly increased.
If you want to write portable multi-threaded code, the code can run on Solaris, FreeBSD, Linux, and other platforms.
removed by the sigpending () function. int Pthread_kill (pthread_t thread, int signo)Sends a signo signal to the thread line. The implementation uses the Kill () system call to complete the send after the thread number is positioned to the corresponding process number. int sigwait (const sigset_t *set, int *sig)Suspends the thread, waits for one of the specified signals in the set to arrive, and deposits the incoming signal into the *sig. The POSIX s
This is a column about POSIX threading programming. Based on the clarification of the concept, the author will give you a detailed account of the POSIX line libraries API. This article is the first article that will tell you about thread creation and cancellation. One, thread creation 1. 1 Threads and processesRelativ
In Linux, the concept and processing of threads and processes are not strictly differentiated like other operating systems. in Linux, a thread is also called a lightweight process. in addition, the important difference between windows and Windows systems is that in Linux, the new thread is not in the original process/thread, but called through the clone () system, generate a process/thread that is exactly the same as the original process/thread, and e
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.