我在第一年结束时从事计算机科学工作,并希望搞一些基本的东西。我想使用线程,所以我可以学习。
有哪些好例子可供学习?
答案 0 :(得分:9)
你应该尝试从Sun并发the java tutorials。
答案 1 :(得分:3)
我推荐Doug Lea撰写的书Concurrent Programming in Java: Design Principles and Patterns 。 Doug Lea是SUNY Oswego的教授之一 - 伟大的教授,才华横溢的人。本书非常出色,为您提供了大量有关用Java编写优秀多线程代码的信息。
哦是的,Doug Lea写了大部分 java.util.concurrent 。所以他在这个问题上是一个很好的权威; - )
答案 2 :(得分:1)
ServerSocket示例非常简单,可以非常简洁地测试和使用线程。
答案 3 :(得分:0)
图像处理和检索Web数据通常会阻止用户界面,使其成为多线程设计的理想选择。
答案 4 :(得分:0)
我开始编写批处理工具,决定我不想等待,并寻找并行处理文件的方法。请原谅伪代码;我的java真的很生气。
考虑你做几次需要一些事情的情况:
foreach(var item in list)
{
doSomethingSlow(item);
}
在这种情况下,添加一些调度代码来构建方法调用之外的线程可能是有益的。我认为正常的java方法是关闭匿名线程,如下所示。如果您需要能够指向线程以获得更多控制,取消等,则必须实现并实例化一个继承自Thread的类。
new Thread({
public void run(){
doSomethingSlow(item);
}
}).start();
注意:我没有检查过这是正确的语法,请自担风险。
这种方法可以节省你一些时间,并打开大门粗略思考的大门。您还可以查看loop unwinding并使用现有的许多不同的并行类库。
我一般不喜欢代码的玩具示例,而更喜欢通过创建有用的东西来学习,所以在一些教程中使用了一段时间的想法之后,我建议你开始在你的所有项目中添加一些合理的并发代码。这样做的时间是有意义的。我不建议你尝试使每一行代码并行,因为它很难调试,并且引入了过多的实例化线程的开销。