jju*_*uma 13 java concurrency multithreading
我的目标是了解Java中的并发性.目前我的知识水平很差.我很确定我知道"易变"的意思.我有点知道"同步"意味着什么.有时.我从来没有编写启动线程或管理它们的代码.在这个问题之外,我有信心并且在家里使用Java工作.
我正在寻找一个小项目或程序的建议,这需要理解并发性才能正确有效地工作.
dfa*_*dfa 10
尝试使用各种策略的数独解析器:
![]()
如果你真的刚开始那么生产者 - 消费者问题可能是一个好的开始:
http://en.wikipedia.org/wiki/Producer-consumer_problem
不要读太多,因为维基百科文章也包含问题的解决方案:-)
我同意 @Julien 关于 mtrix 乘法的观点。在这个问题中,使用线程带来的改进更加明显。
但正如 @dfa 所说,我不同意数独。这不够明智
例如这是我在线程中编写 Matrix-Mul 的结果
% self
time seconds name
32.38 10.72 Simple
21.29 7.05 Tiling
15.58 5.16 SimpleThread
9.63 3.19 ThreadTiling
Run Code Online (Sandbox Code Playgroud)
这是 1000*1000 矩阵相乘的结果。你可以很容易地看出多少线程可以提高你的程序速度。(平铺是一种用于增强缓存命中的技术)
之后,当您熟悉语法时,您可能会陷入经典问题。它们可能更具挑战性,但它可以帮助您熟悉解决并发问题的模式。
我建议看一下关于信号量的小书。它非常全面,可以帮助您掌握这些问题背后的想法。
| 归档时间: |
|
| 查看次数: |
10504 次 |
| 最近记录: |