Coincidentally, when I started the translation of the book, I had just begun my first four-core computer, and when the translation work was nearing completion, I added an ipad 2 (a dual-core computer). This shows that multicore computers have fully entered my daily life. Since I'm a guy who lags far behind fashion (for example, I'm not too cold on a dual-core cell phone), I have no doubt that multicore computers have moved into millions of homes. It also seems to mean that the era of multicore applications is really coming!
Don't be too early to be happy. If you look closely, you will find that you have not really entered the multicore world. Because most of the applications on our computers are still single-core. In other words, many times we just run a bunch of single-core programs on a multi-core computer. Perhaps your operating system allocates separate execution cores for these program processes, but the multi-core advantage of this granularity is quite limited, and we have to develop a truly multicore application for ourselves.
Yes, this means that the program has the ability to do its own multi-core processing. In other words, we are now going to parallelize not the process, but the thread. I believe a lot of experienced programmers see here will be like me frown, this is undoubtedly a very troublesome thing, the operation of a wide range of very easy error. Most of all, most of the bugs here are hard to reproduce, let alone what exception handling mechanisms are used. Unless this process can be greatly simplified, parallel programming is always a master's toy.
Interestingly, if you ask a C + + programmer, what library is easiest to use? He ten would say it's STL. And if you ask him again, what are the drawbacks of STL? He ten to say that it is too basic to be a stereotyped application. And that's the advantage of the book.
The Parallel Schema Library (PPL), described in this book, is actually a modeled library of C + + templates, and as part of the visual Studio 2010 development system, it has been completely "built-in" into this version of the C + + language. This means that you can use its parallel algorithm as you would with Std::for_each, using its parallel container as you would with std::vector<t>. In addition, it is well-compatible with some of the features of the latest C + + 0x standard (now called C + + 11), such as lambda expressions. This will help us write code that is more like C + +.
However, the exciting part of the book is far more than that, and more importantly, it is modeled for parallel programming. With the help of the PPL, we can do parallel programming from a "design" perspective, so you just have to think about how to parallelize your data flow or control flow. Don't worry too much about the security of data sharing, or the details of how the operation is synchronized. Of course, if you choose the right design mode.
However, the design pattern is not a design template, not mechanically. You can't "have a hammer in your hand, just look like a nail." Design patterns are a high level of abstraction of a set of designs, with many variations (we call it pattern variants) and we must learn to use them flexibly. This requires modeling programming thinking, which is the ultimate goal of this book.
As a translator, I learned a lot from this book, my friend Gaobo (who is the translator of "Design original" and "The Beauty of research") has summed up his translation experience: "The translator should benefit from his translation first!" "I am very much in recognition, so I am deeply honored by my work.
Of course, this is my first time to complete the translation of a book independently, the lack of experience so that I am afraid of the work, there are gains and regrets, I hope it has been at least "correct." In the process of translation I got a lot of friends to help, the following to their highest gratitude.
The first thing to thank is the Chen editor of the mechanical Industry press and the project manager of Grand Innovation Institute, Mr. Gaobo, without their help and encouragement, I am afraid I will never have the chance to translate such a good book.
Next, we must thank Capgemini Consulting's Yiao HAO Engineers, Microsoft Research Asia's Xu Ning engineers, EMC's Zhu Lei engineers, and Cisco's Jinou engineers, who have carefully read the first draft of the book and have made a lot of changes, so I can avoid a lot of catastrophic mistakes. Even Zhu Lei engineers and Jinou engineers helped me translate the preface to the preface, and I etched them with the hope that the book would bring them joy.
?
Lingjie
March 31, 2012
In Xin ' an Jiang Riverside
?
?
?
?
?
The translator sequence of Visual C + + parallel programming