无法理解java中的并发性,尝试阅读推荐的书籍

时间:2010-09-03 23:22:41

标签: java multithreading concurrency

好的我不仅是java中并发的新手,而且对java编程也是一个新手。我尝试从Java教程中理解并发性,尝试在实践中阅读并发,但它似乎过于先进,所以尝试阅读其他几本书:SCJP全面的,java编程语言第4版。
它好像有些东西没有加起来或有意义,我无法理解为什么和如何形成正确的概念理解模式。我为描述这项无用的练习而道歉。但有人可以推荐一些好的阅读材料和/或在java中学习并发的方法。

6 个答案:

答案 0 :(得分:7)

  

但对于java编程来说也是一个新手

将并发书放在一边几个月,然后继续阅读基本的Java / SCJP书籍并练习基本的Java。立即创建,然后根据本书的说明创建ThreadRunnable。玩几个月,直到你掌握它。然后继续使用并发书。

在跑步前学习步行,否则你就是在爬行而不是跑步。

答案 1 :(得分:7)

这听起来很快就会被测试(类?认证?)“关于Java并发”。您没有经历过自然遇到问题的循环,思考如何解决问题,并转向解决方案的并发性。如果是这种情况......

(1)不要责怪你的大脑。相反,退后一步,开始考虑您感兴趣的问题。记下来。互联网应用程序是一个很好的起点。例如 - 编写某种可以处理来自不同用户的多个连接的Internet服务器,比如游戏服务器。或者,一个股票交易程序,它必须在处理来自经纪人的信息的同时处理您的机器人的订单。

(2)思考并发性。既然您有一个您感兴趣的问题,并且将并发性简单地视为多任务处理,请使用箭头表示演员/程序图表,表示他们需要如何彼此沟通。勾画出一个虚拟骨架代码。你实际上不打算写游戏服务器;但是你可以使用简单的空成员函数(如connectToGame(){}

)创建一个简单的骨架类库

(3)现在你准备好了。运行一个或两个hello-world线程。翻阅您的书籍或浏览Javadocs并查看可用的不同并发结构。考虑一下您可能适用于您的问题。不要担心做出“正确的选择”。你很快就会发现你是否有一些有用的东西。

(4)接受反复尝试。还有另一个词:学习!

现在,在您获得一些经验之后,您将能够获取Java并发书并阅读其他人的问题

坚持下去,不要放弃。

答案 2 :(得分:3)

我最喜欢学习Java Book,其中有一个很好的并发章节是:

Sun Certified Programmer & Developer for Java 2 Study Guide (Exam 310-035 & 310-027)

alt text

答案 3 :(得分:3)

这是一个困难的主题,没有人完全掌握它,甚至没有人设计它。

许多人只了解它的一部分。如果您只知道一些可以在程序中使用的技巧/模式,那就足够了。从那里你积累的越来越多。

新手可能只知道他可以在方法中添加'synchronized'关键字。令人惊讶的是,即使他不知道自己在做什么,也解决了很多问题并且表现得很好。

答案 4 :(得分:2)

添加我的两分钱:首先专注于学习并发的概念,而不是在任何特定语言中实际使用它的机制。如果你陷入语言结构的困境,那么对这个主题的高层理解就会变得更加困难。

为此,我建议Carriero& amp;&amp ;;> 如何编写并行程序。 Gelernter(免费和法律PDF download)。它在描述概念和提供具体代码示例之间取得了很好的平衡,并且在理论上不会陷入困境。它实际上非常易读和有趣(或许可能只是我)。

答案 5 :(得分:1)

我觉得我理解前后的并发性。最近,我在办公室里拿了一本书,发现它非常好。不仅仅是并发性,它还可以很好地覆盖整个Java。

Introduction to Java Programming, Eighth Edition: Comprehensive Version, Y. Daniel Liang

但是,我的大部分理解来自于使用代码,解决问题和尝试示例的经验。在我做之前,我从未真正理解线程。

并发性很复杂,大多数人不会仅仅通过阅读获得它。查看API并编写一些测试程序来尝试。无论你选择什么书,不要只是阅读代码,写出并运行它。在一两天之后,使用它,你将会得到它。