随着多核CPU在桌面上的兴起,多线程技能将成为程序员的宝贵资产。您能为想要学习线程编程的程序员推荐一些好的资源(书籍、教程、网站等)吗?

有帮助吗?

解决方案

看看赫伯·萨特的《免费午餐结束了”然后是他的一系列文章 有效并发.

其他提示

Joseph Albahari 在这里写了一篇关于 C# 线程的精彩概述:

http://www.albahari.com/threading/

老实说我自己从来没有读过,但是 Java 并发编程 这是我听过几个人推荐的一本书。

我在 C++ 上写了关于多线程和并发的文章 我的博客. 。我还在写一本关于 C++ 并发性的书: C++ 并发实践.

我读过(大部分) Java 并发实践 布莱恩·戈茨(Brian Goetz)写的,非常好。

显然,本书贯穿了一个基于 Java 的主题(使用 Java 特定的线程、锁等实现),但几乎所有原理都可以应用于其他语言。

作者的主页包含 文章列表 他写过,其中一些包括与线程相关的内容。也许从这里开始,如果你喜欢他的风格,就买这本书。

有关 C#(或一般的 .NET)并发编程的优秀指南和参考,我推荐 MSDN 每个开发人员必须了解的有关多线程应用程序的知识 万斯·莫里森 (Vance Morrison) 在 MSDN 上发表的文章。它包含大量有关多线程开发的最佳实践信息和注意事项

我维护一个并发文章、博客和项目的链接博客,网址为:

http://concurrency.tumblr.com

我通常每天在各种环境(Erlang、Java、Scala、.NET、C++、Ruby、Python 等)中发布一两个关于各种主题(线程、参与者、锁定、并行编程)的链接。

它是 Delphi 特有的,但没有理由这个概念不适用于任何其他语言!

多线程教程

http://www.cilk.com/multicore-e-book/

这是对这种情况的一个很好的总体概述,如果您正在寻找教程和书籍,最好指定一种语言作为起点,这样您就可以处理一些代码。

Erlang 编程语言提供了一种易于使用的并发编程风格。您可能从未真正使用过 Erlang,但这些概念可以移植到其他语言。你可能想读这本书 Erlang 编程:并发世界的软件 .

函数式编程的粉丝声称不需要学习任何新东西。只需使用纯函数式语言,编译器或解释器就会自动并行化所有内容。所以你可能想学习 Haskell、OCaml 或其他函数式语言。

我不知道您到底在寻找什么,但如果您正在进行 WindowsForms 开发,那么以下博客文章值得每分钟阅读:WinForms UI 线程调用:Invoke/BeginInvoke/InvokeRequred 的深入回顾

我认为 Boost.Threads 是一个非常值得学习的 C++ 并发库,特别是如果您只是想开始编写多线程应用程序。代码非常简洁且易于理解,而且下一个 C++ 标准可能会包含基于 Boost.Threads 的线程库(教程: http://www.ddj.com/cpp/184401518)

如果您想尝试执行简单任务的高度并行版本,或者查看真正的解决方案,那么您可能会比查看更糟糕的情况 宽取景器 项目。基本上,它是关于如何有效地对日志文件进行并行正则表达式匹配,但尝试添加尽可能少的代码。

参与者提交了多种不同语言的解决方案 绩效结果 已发布。原来的项目现已完成,现在有 广角取景器2 继续工作。

编码恐怖 有一个好的 广角取景器简介.

为了对这个主题进行丰富、彻底的处理,并在计算机科学和实践之间取得良好的平衡,我建议 多处理器编程的艺术. 。很多例子都是面向对象的代码,即Java,还有其他分散的语言。这仅取决于所涵盖的主题。我真正喜欢这本书的地方在于它讨论了如何在并发设计中实现常见算法。当然,还有更多!

对于一般概念和 pthreads 的处理,我真的很喜欢 使用 POSIX 线程编程. 。作为库和 API,它是用 C 语言编写的。

对于 Windows 和 C# 开发人员,请查看 乔·达菲的博客. 。Joe 在 Microsoft 开发部门从事并行库、基础设施和编程模型方面的工作。他有一本书将于 11 月出版。2008年题为 Windows 上的并发编程 (亚马逊链接).

另外,不要错过教父的博客:赫伯·萨特的 萨特磨坊. 。他在 Dr. 上有他所有文章的链接。多布的日记等等。点击他的 并发类别.

CPU 制造商网站有一些有趣的内容:

http://developer.amd.com/documentation/articles/Pages/default.aspx#parallel

http://software.intel.com/en-us/multi-core

此外,英特尔的开源线程库有一些很好的参考:

http://www.threadingbuildingblocks.org/

如果您使用 C#,请阅读 Gaston C 所著的《C# 2008 和 2005 线程编程》一书。希拉尔 - Packt 出版 - http://www.packtpub.com/beginners-guide-for-C-sharp-2008-and-2005-threaded-programming/book , 会帮助你。强烈推荐给 C# 程序员,因为您可以下载包含利用多核计算机的有趣示例的代码。这本书是一本很好的指南,有很多代码可供练习。它在讲述故事的同时解释了最困难的概念。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top