I. Processes and threads 1. What is a process
A process is an application that is running in the system
Each process is independent, and each process runs within its dedicated and protected memory space
For example, to open the Thunder, Xcode, the system will start 2 processes respectively
You can view the processes that are open in your Mac system through Activity Monitor
2. What is a thread
1 processes to perform a task, a thread must be wired (at least 1 threads per 1 processes)
Threads are the basic unit of execution of a process, and all tasks of a process (program) are executed in the thread
For example, using a cool dog to play music, using Thunder to download movies, all need to execute in the thread
3. Thread's serial
The execution of a task in 1 threads is serial
If you want to perform multiple tasks in 1 threads, you can perform these tasks sequentially, one at a-
That is, at the same time, 1 threads can only perform one task
For example, download 3 files in 1 threads (file A, file B, file C, respectively)
Two, multi-threading 1. What is multithreading
Multiple threads can be opened in 1 processes, each thread can perform different tasks in parallel (at the same time)
process, workshop, thread-shop workers
Multithreading technology can improve the efficiency of program execution
For example, the simultaneous opening of 3 threads to download 3 files (file A, file B, file C, respectively)
2. The principle of multithreading
At the same time, the CPU can only handle 1 threads, and only 1 threads are working (executing)? Multithreading concurrency (at the same time) executes, in fact, the CPU is quickly dispatched between multiple threads (switching)? If the CPU schedules threads fast enough, it creates the illusion of multithreaded concurrency execution. Think: If the threads are very, very much, What's going to happen?? CPU will be dispatched between N multithreading, the CPU will be exhausted, consumes a lot of CPU resources? The frequency at which each thread is scheduled to execute is reduced (the execution efficiency of the thread is reduced)
3. Advantages and disadvantages of multithreading
1) Advantages of multithreading
To improve the execution efficiency of the program appropriately
Can appropriately improve resource utilization (CPU, memory utilization)
2) Disadvantages of multithreading
Open threads need to occupy a certain amount of memory (by default, the main thread takes up 1M, the child threads occupy 512KB), if you open a large number of threads, will consume a lot of memory space, reduce the performance of the program
The more threads, the greater the overhead of the CPU on the dispatch thread
Programming is more complex: such as communication between threads, multi-threaded data sharing
4. Multithreading in the development of iOS application
1) Main thread: After an iOS program runs, the default is to turn on 1 threads, called the "main thread" or "UI thread"
2) main function of primary thread
Display \ Refresh UI interface
Handling UI events (such as click events, scrolling events, drag events, etc.)
3) Use of the main thread note: do not put more time-consuming operations into the main thread.
Time-consuming operations can get stuck in the main thread, seriously affecting the smoothness of the UI, giving users a "card" bad experience
Lightweight application Development (12) Multi-line Cheng Jianshao-01