Kann mich nicht um die Parallelität in Java kümmern, habe versucht, die empfohlenen Bücher zu lesen [geschlossen]

8

OK Ich bin nicht nur neu im Umgang mit Java, sondern auch ziemlich neu in der Java-Programmierung. Ich versuchte, Nebenläufigkeit von den Java-Tutorials zu verstehen, versucht, Parallelität in der Praxis zu lesen, aber es schien zu weit fortgeschritten, so versuchte Lesen aus ein paar anderen Bücher: SCJP A umfassend, Die Java-Programmiersprache 4. Ausgabe Es ist, als ob es Dinge gäbe, die sich nicht addieren oder einen Sinn ergeben, ich bin nicht in der Lage, das Warum und das Wie zu verstehen und das richtige Muster des begrifflichen Verständnisses zu bilden. Ich entschuldige mich dafür, diese Übung sinnlos zu beschreiben. Aber kann jemand bitte gutes Lesematerial und / oder Möglichkeiten, die Nebenläufigkeit in Java zu lernen, empfehlen.

    
msk 03.09.2010, 23:22
quelle

6 Antworten

7
  

aber ich bin auch ziemlich neu in der Java-Programmierung

Lassen Sie das Nebenläufigkeitsbuch für ein paar Monate beiseite und lesen Sie ein grundlegendes Java / SCJP-Buch und üben Sie viel Java. Erstellen Sie so und dann ein Thread oder Runnable gemäß den Anweisungen des Buches. Spiel ein paar Monate damit herum, bis du es gut verstanden hast. Fahren Sie dann mit dem Nebenbuch fort.

Lernen Sie zu laufen, bevor Sie laufen, sonst krabbeln Sie anstatt zu laufen.

    
BalusC 04.09.2010 00:06
quelle
7

Das hört sich so an, als würden Sie demnächst (Klasse? Zertifizierung?) "auf Java-Parallelität" getestet werden. Sie haben den Zyklus, in ein Problem zu geraten, nicht selbst erlebt, darüber nachgedacht, wie Sie es lösen können, und auf Gleichzeitigkeit für eine Lösung zurückgegriffen. Wenn dies der Fall ist ...

(1) Gib deinem Gehirn keine Schuld . Gehen Sie lieber einen Schritt zurück und fangen Sie an, über Probleme nachzudenken, die Sie interessieren. Schreib sie auf. Internet-Anwendungen sind ein guter Anfang. Zum Beispiel-- Schreiben einer Art von Internet-Server, der mehrere Verbindungen von verschiedenen Benutzern, wie einem Spiele-Server behandeln kann. Oder ein Aktienhandelsprogramm, das die Aufträge Ihres Roboters gleichzeitig mit der Verarbeitung von Informationen vom Broker verarbeiten muss.

(2) Denken Sie an Nebenläufigkeit. Nachdem Sie nun ein Problem haben, das Sie interessiert, und Parallelität einfach als Multitasking betrachten, zeichnen Sie ein Diagramm der Akteure / Programme mit Pfeilen, die darstellen, was sie benötigen miteinander kommunizieren. Skizzieren Sie einen Dummy-Skeleton-Code. Du wirst nicht wirklich einen Gameserver schreiben; Sie können jedoch eine einfache Skelettklassenbibliothek mit einfachen, leeren Elementfunktionen wie connectToGame(){}

erstellen

(3) Jetzt sind Sie bereit. Führen Sie ein oder zwei Beispiele für Hallo-Welt-Threads aus. Blättern Sie durch Ihre Bücher oder durchsuchen Sie die Javadocs und sehen Sie sich die verschiedenen verfügbaren parallelen Strukturen an. Überlege dir, welche du auf dein Problem anwenden kannst. Mach dir keine Sorgen über die "richtige Wahl". Sie werden bald herausfinden, ob Sie etwas haben, das funktioniert.

(4) Umgehen Sie Versuch und Irrtum. Es gibt ein anderes Wort dafür: Lernen!

Nun, nachdem Sie einige Erfahrung damit gemacht haben, können Sie ein Java-Concurrency-Buch aufnehmen und über das Problem eines anderen lesen .

Bleib da und gib nicht auf.

    
Pete 04.09.2010 03:57
quelle
3

Mein Lieblingslern-Java-Buch, das ein großes Kapitel über Nebenläufigkeit hat, ist:

Sun Certified Programmer & amp; Entwickler für Java 2 Study Guide (Prüfung 310-035 & amp; 310-027)

    
Eric Warriner 03.09.2010 23:38
quelle
3

Es ist ein schwieriges Thema, niemand hat es vollständig verstanden, nicht einmal diejenigen, die es entworfen haben.

Viele Leute verstehen nur eine Teilmenge davon. Wenn Sie nur ein paar Tricks / Muster kennen, die Sie in Ihren Programmen verwenden können, ist das gut genug. Von dort sammeln Sie mehr und mehr.

Ein Neuling weiß vielleicht nur, dass er ein synchronisiertes Schlüsselwort zu Methoden hinzufügen kann. Erstaunlicherweise hat das viele Probleme gelöst und funktioniert gut, auch wenn er keine Ahnung hat, was er macht.

    
irreputable 04.09.2010 03:10
quelle
2

Um meinen zwei Cent Wert hinzuzufügen: Konzentriere dich darauf, zuerst die Konzepte der Nebenläufigkeit zu lernen, anstatt die Mechaniken, sie tatsächlich in einer bestimmten Sprache zu verwenden. Wenn Sie in Sprachkonstrukten stecken bleiben, ist es viel schwieriger, ein tiefgehendes Verständnis des Themas zu bekommen.

Zu diesem Zweck würde ich Wie schreibe ich Parallelprogramme von Carriero & amp; Gelernter (kostenloser & amp; legaler PDF-Download ). Es stellt ein gutes Gleichgewicht zwischen der Beschreibung der Konzepte und der Bereitstellung konkreter Codebeispiele her und bleibt nicht in der Theorie stecken. Es ist wirklich sehr lesbar und unterhaltsam (oder vielleicht ist das nur ich).

    
akatkinson 10.09.2010 01:59
quelle
1

Ich habe das Gefühl, dass ich Nebenläufigkeit rückwärts und vorwärts verstehe. Kürzlich habe ich ein Buch aus dem Regal in unserem Büro geschnappt und fand es SEHR gut. Nicht nur bei Parallelität, es bietet eine große Abdeckung von Java als Ganzes.

Einführung in die Java-Programmierung, Achte Ausgabe: Umfassende Version, Y. Daniel Liang

Das meiste meines Verständnisses kam jedoch aus Erfahrung mit Code arbeiten, Probleme angehen und Beispiele versuchen. Ich habe nie wirklich Threading verstanden, bis ich es getan habe.

Nebenläufigkeit ist komplex und die meisten Leute werden es nicht nur vom Lesen bekommen. Schauen Sie durch die API und schreiben Sie einige Testprogramme, um die Dinge auszuprobieren. Welches Buch Sie auch wählen, versuchen Sie nicht nur den Code zu lesen, schreiben Sie ihn aus und führen Sie ihn aus. Nach ein oder zwei Tagen, wenn du damit arbeitest, wirst du es meistens herausgefunden haben.

    
gMale 09.09.2010 19:15
quelle