iOS multi-threading and web Development multi-threading Overview
Last Update:2015-07-10
Source: Internet
Author: User
<span id="Label3"></p><span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px;"></span></span><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="line-height: 26px;"><span style="font-family:Comic Sans MS;font-size:14px;">Shimen The main contribution, respect the work of the author, please do not reprint.</span></span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="line-height: 26px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="color: rgb(119, 119, 119); text-align: center;">If the article is helpful to you, you are welcome to donate to the author, support the Shimen, donate the amount at random, ^_^</span><br></span></span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="line-height: 26px;"><span style="text-align: center;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="color: rgb(119, 119, 119);">I want to donate:</span> click Donate</span></span></span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="line-height: 26px;"><span style="color: rgb(119, 119, 119); text-align: center;"><span style="font-family:Comic Sans MS;font-size:14px;">Cocos2d-x source Download: Dot I teleport</span></span></span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="line-height: 26px; color: rgb(119, 119, 119); text-align: center;">Games official Download:</span>HTTP://DWZ.CN/RWTJL</span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="line-height: 26px; color: rgb(119, 119, 119);">Game Video Preview:</span>http://dwz.cn/RzHHd</span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="line-height: 26px; color: rgb(119, 119, 119);">game development Blog:</span>Http://dwz.cn/RzJzI</span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="color: rgb(60, 60, 60); line-height: 26px;"><span style="font-weight: normal;"><span style="color: rgb(119, 119, 119);"><strong>Game Source Transfer</strong></span></span> : Http://dwz.cn/Nret1</span><span style="color: rgb(60, 60, 60);"><span style="max-width: 100%; line-height: 26px;"></span></span></span></p></p><br><span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px;"><span style="font-family:Comic Sans MS;font-size:18px;">A. Process</span></span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">what is a process<br style="margin: 0px; padding: 0px;">A process is an application that is running in the system</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">each process is independent, and each process runs within its dedicated and protected memory space</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">for example, Open qq, Xcode, the system will start 2 processes respectively</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">You can view the processes that are open in your Mac system through Activity Monitor</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px;"><span style="font-family:Comic Sans MS;font-size:18px;">B. Threads</span></span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">main thread, sub-thread occupy memory is 1M and 512K respectively</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">1. What is a thread<br style="margin: 0px; padding: 0px;">1 processes to perform a task, a thread must be wired (at least 1 threads per 1 processes)</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">threads are the basic unit of execution of a process, and all tasks of a process (program) are executed in</span> the thread</span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">for example, using a cool dog to play music, using Thunder to download movies, all need to execute in the</span> thread</span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">2. Thread's serial</span></span><span style="font-family:Comic Sans MS;font-size:18px;">The execution of a <span style="font-family:Comic Sans MS;font-size:18px;">task in 1 threads is serial<br style="margin: 0px; padding: 0px;">If you want to perform multiple tasks in 1 threads, You can perform these tasks sequentially, one at a-</span></span><span style="font-family:Comic Sans MS;font-size:18px;">That is <span style="font-family:Comic Sans MS;font-size:18px;">, at the same time, 1 threads can only perform one task</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">for example, download 3 files in 1 threads (file a, file b, file c, respectively)</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">3. Multithreading</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">What is multithreading<br style="margin: 0px; padding: 0px;">Multiple threads can be opened in 1 processes, each thread can perform different tasks in parallel (at the same time)<br style="margin: 0px; padding: 0px;">Process shop, Thread shop worker</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">multithreading technology can improve the efficiency of program execution</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">for example, the simultaneous opening of 3 threads to download 3 files (file a, file b, file c, respectively)</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">4. Multithreading Principle</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">The principle of multithreading<br style="margin: 0px; padding: 0px;">At the same time, the CPU can only handle 1 threads, and only 1 threads are working (executing)<br style="margin: 0px; padding: 0px;">Multi-threaded concurrency (simultaneous) execution, in fact, the CPU is quickly dispatched between multiple threads (switching)<br style="margin: 0px; padding: 0px;">If the CPU schedules threads Fast enough, It creates the illusion of multi-threaded concurrency execution<br style="margin: 0px; padding: 0px;">Think: What happens if the threads are very, very much?<br style="margin: 0px; padding: 0px;">CPU will be dispatched between N multithreading, the CPU will be exhausted, consumes a lot of CPU resources<br style="margin: 0px; padding: 0px;">The frequency at which each thread is scheduled to execute is reduced (thread execution efficiency is reduced)</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">5. Advantages and disadvantages of multithreading</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">Advantages of multithreading<br style="margin: 0px; padding: 0px;">To improve the execution efficiency of the program appropriately<br style="margin: 0px; padding: 0px;">Can appropriately improve resource utilization (CPU, memory Utilization)<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">Disadvantages of multithreading<br style="margin: 0px; padding: 0px;">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<br style="margin: 0px; padding: 0px;">The more threads, the greater the overhead of the CPU on the dispatch thread<br style="margin: 0px; padding: 0px;">Programming is more complex: such as communication between threads, multi-threaded data sharing</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">6. Main</span> thread</span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">What is the main thread<br style="margin: 0px; padding: 0px;">After an iOS program runs, 1 threads are turned on by default, called the "main thread" or "ui thread"<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">Main functions of the primary thread<br style="margin: 0px; padding: 0px;">Display \ Refresh UI interface<br style="margin: 0px; padding: 0px;">Handling UI Events (such as click events, Scrolling events, drag events, etc.)<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">Note on the use of the main thread<br style="margin: 0px; padding: 0px;">Do not put more time-consuming operations into the main</span> thread</span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">time-consuming operations can get stuck in the main thread, seriously affecting the smoothness of the ui, giving users a "card" bad experience</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">7.iOS Multithreading Implementation Technology</span></span> <ul style="margin: 0px 0px 0px 45px; padding: 0px; word-break: break-all; line-height: 21px;"> <ul style="margin: 0px 0px 0px 45px; padding: 0px; word-break: break-all; line-height: 21px;"> <li style="margin: 0px 0px 1em; padding: 0px; list-style: inherit !important;"><span style="font-family:Comic Sans MS;font-size:18px;">Pthread</span></li> <li style="margin: 0px 0px 1em; padding: 0px; list-style: inherit !important;"><span style="font-family:Comic Sans MS;font-size:18px;">Nsthread</span></li> <li style="margin: 0px 0px 1em; padding: 0px; list-style: inherit !important;"><span style="font-family:Comic Sans MS;font-size:18px;">GCD</span></li> <li style="margin: 0px 0px 1em; padding: 0px; list-style: inherit !important;"><span style="font-family:Comic Sans MS;font-size:18px;">Nsoperation</span></li> </ul> </ul><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"></span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px;"><span style="font-family:Comic Sans MS;font-size:18px;">C. What needs to be mastered</span></span></span><span style="font-family:Comic Sans MS;font-size:18px;">Multithreading<br style="margin: 0px; padding: 0px;">1.NSThread<br style="margin: 0px; padding: 0px;">Several ways to 1> the thread<br style="margin: 0px; padding: 0px;">* First created, then started<br style="margin: 0px; padding: 0px;">Nsthread *thread = [[nsthread alloc] initwithtarget:self selector: @selector (run) object:nil];<br style="margin: 0px; padding: 0px;">[thread start];<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">* Direct Start<br style="margin: 0px; padding: 0px;">[nsthread detachnewthreadselector: @selector (run) totarget:self withobject:nil];<br style="margin: 0px; padding: 0px;">[self performselectorinbackground: @selector (run) withobject:nil];<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">2> Other uses<br style="margin: 0px; padding: 0px;">Nsthread *current = [nsthread currentthread];<br style="margin: 0px; padding: 0px;">+ (nsthread *) mainthread; Get the main thread<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">3> Inter-thread Communication<br style="margin: 0px; padding: 0px;">Performselectoronmainthread .....<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">2.GCD (focus)<br style="margin: 0px; padding: 0px;">1> Types of queues<br style="margin: 0px; padding: 0px;">* Concurrent Queue<br style="margin: 0px; padding: 0px;">Get a global concurrent queue: Dispatch_get_global_queue<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">* Serial Queue<br style="margin: 0px; padding: 0px;">A. Create yourself<br style="margin: 0px; padding: 0px;">Dispatch_queue_create<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">B. Home row<br style="margin: 0px; padding: 0px;">Dispatch_get_main_queue<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">2> method types for performing tasks<br style="margin: 0px; padding: 0px;">* Synchronization (sync) execution<br style="margin: 0px; padding: 0px;">* Asynchronous (async) execution<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">3> Understanding how queues and methods work together<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">4> Inter-thread Communication<br style="margin: 0px; padding: 0px;">Dispatch_async (<br style="margin: 0px; padding: 0px;">Dispatch_get_global_queue (dispatch_queue_priority_default, 0), ^{<br style="margin: 0px; padding: 0px;">Perform time-consuming asynchronous operations ...<br style="margin: 0px; padding: 0px;">Dispatch_async (dispatch_get_main_queue (), ^{<br style="margin: 0px; padding: 0px;">Go back to the main thread and perform a UI refresh operation<br style="margin: 0px; padding: 0px;">});<br style="margin: 0px; padding: 0px;">});<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">5> Other uses<br style="margin: 0px; padding: 0px;">Dispatch_once<br style="margin: 0px; padding: 0px;">Dispatch_after<br style="margin: 0px; padding: 0px;">Dispatch_group_async\dispatch_group_notify<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">3.NSOperation<br style="margin: 0px; padding: 0px;">1> Basic Use<br style="margin: 0px; padding: 0px;">Nsinvocationoperation<br style="margin: 0px; padding: 0px;">Nsblockoperation<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">2> Nsoperationqueue (key)<br style="margin: 0px; padding: 0px;">* Maximum number of concurrent settings</span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">-(void) setmaxconcurrentoperationcount: (nsinteger) cnt;</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">Note: This method can only limit the number of simultaneous threads, and cannot limit a particular thread (that is, the thread group that might be executed each time is Different)</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"> </span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">* Set Dependencies<br style="margin: 0px; padding: 0px;">[OPERATIONB adddependency:operationa]; Action B depends on action a<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;">3> customizing Operation (understanding Basic Processes)<br style="margin: 0px; padding: 0px;"><br style="margin: 0px; padding: 0px;"></span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;">4> How to resolve a picture (a Url) to repeat the download problem</span></span><span style="font-family:Comic Sans MS;font-size:18px;"><span style="font-family:Comic Sans MS;font-size:18px;"><br></span></span><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="line-height: 26px;"><span style="font-family:Comic Sans MS;font-size:14px;">Shimen The main contribution, respect the work of the author, please do not reprint.</span></span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="line-height: 26px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="color: rgb(119, 119, 119); text-align: center;">If the article is helpful to you, you are welcome to donate to the author, support the Shimen, donate the amount at random, ^_^</span><br></span></span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="line-height: 26px;"><span style="text-align: center;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="color: rgb(119, 119, 119);">I want to donate:</span> click Donate</span></span></span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="line-height: 26px;"><span style="color: rgb(119, 119, 119); text-align: center;"><span style="font-family:Comic Sans MS;font-size:14px;">Cocos2d-x source Download: Dot I teleport</span></span></span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="line-height: 26px; color: rgb(119, 119, 119); text-align: center;">Games official Download:</span>HTTP://DWZ.CN/RWTJL</span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="line-height: 26px; color: rgb(119, 119, 119);">Game Video Preview:</span>http://dwz.cn/RzHHd</span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="line-height: 26px; color: rgb(119, 119, 119);">game development Blog:</span>Http://dwz.cn/RzJzI</span></p></p><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><p style="margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-bottom: 5px; color: rgb(92, 92, 92); background-color: rgb(245, 245, 245); line-height: 28px; border: 0px; text-indent: 22px;"><span style="font-family:Comic Sans MS;font-size:14px;"><span style="color: rgb(60, 60, 60); line-height: 26px;"><span style="font-weight: normal;"><span style="color: rgb(119, 119, 119);"><strong>Game Source Transfer</strong></span></span> : Http://dwz.cn/Nret1</span><span style="color: rgb(60, 60, 60);"><span style="max-width: 100%; line-height: 26px;"></span></span></span></p></p> <p style="font-size:12px;"><p style="font-size:12px;">Copyright Notice: This article for Bo Master original article, without Bo Master permission not Reproduced.</p></p> <p><p>iOS multi-threading and web Development multi-threading Overview</p></p></span>