Die Materie der Multi-Thread Programmierung ist schwierig und umfangreich. Wer Software entwickelt, die von vielen Threads parallel durchlaufen wird, sollte sich unbedingt damit auseinandersetzen. Gerade in Zeiten von Prozessoren mit vielen Kernen wäre es eine Verschwendung von Prozessor-Ressourcen den Code vor Nebenläufigkeit abzuschirmen.
Aber auch beim Einsetzen von Frameworks und insbesondere auch in der JavaEE Entwicklung sollte man sich der o. g. Problematik stets bewusst sein. Zwar nehmen einem Application-Server viel Arbeit ab, aber man sollte trotzdem wissen, wie diese funktionieren und worauf zu achten ist. Der Tomcat z. B. (sowie auch der JBoss) verwenden Servlets, um (HTTP-)Requests abzuarbeiten. Diese Servlets werden u. U. von vielen Threads parallel durchlaufen, sodass es hier durchaus zu Multi-Thread Fehlern kommen kann.
Um die gröbsten Fehler zu vermeiden, folgen drei Tipps. Wenn diese beachtet werden, ist die Software im Hinblick auf Thread-Sicherheit schon auf einem guten Weg!
- Wenn möglich auf Instanz-Variablen verzichten
- Möglichst auf statische Klassenvariablen verzichten
- Falls Variablen geteilt werden müssen, diese mit synchronized schützen
Schließlich sollte man sich auch immer darüber informieren, ob die verwendeten APIs Thread-sicher sind. Heißer Kandidat sind Connection-Objekte, die applikationsweit wiederverwendet werden. Lassen sich hierüber keine Informatinen finden, sollten diese Objekte sicherheitshalber auch synchronisiert werden.
Der Kommentar wurde von einem Blog-Administrator entfernt.
AntwortenLöschenDer Kommentar wurde von einem Blog-Administrator entfernt.
AntwortenLöschen