我认为自己是一个相当不错的开发人员,但是当谈到多线程时,我总是n00b。我的意思是我在工作中所做的唯一多线程是基本的东西,例如使用ThreadPool生成一些后台工作来产生多个线程。不需要同步,也不需要手动创建线程。
所以,我的问题是这个;我想编写一些需要大量多线程的应用程序,并且需要执行所有高级内容,例如同步等。我只是想不出任何要编写的东西。我想过可能会尝试编写自己的ThreadPool,但我认为我需要学会走路才能跑步。那么有什么想法可以建议吗?它不需要任何现实世界的用途,它可以毫无意义,毫无价值,但我只是想变得更好。我已经阅读了大量关于所有理论的文章和教程,但唯一真正变得更好的方法就是做。那么,有什么想法吗?
答案 0 :(得分:7)
那够了吗?
答案 1 :(得分:3)
某种无意义的批处理应用程序怎么样?在单个线程中生成大量数据并将其转储到文件中,然后开始将工作拆分为不同大小的线程并将它们转储到另一个文件中,计算时间并比较最后的文件以确保顺序是一样的。这将使您进入多线程,锁定,互斥,什么不是,并且还显示多线程某些任务与单线程中的处理相比的好处。
第一件事突然出现在我脑海中。可能是沉闷和/或毫无意义,但不要射击信使! :)
答案 2 :(得分:3)
我认为你应该引起对这本书的关注:
Herb Sutter的精彩文章(赫伯,我们都在等你的新书!)
一些博客:
P.S。 Power Threading如何作为多线程(和ThreadPool实现)的一个例子?