Posts

She bangs Java

Wer täglich Code mit Java schreibt, will unter Umständen auch Java für kleinere Aufgaben in der Shell verwenden. Gewöhnlich bedeutete dies, dass man seinen Quellcode zuerst übersetzen ( javac ) und anschließend mit java ausführen musste. Unter Unix ist es aber verbreitet seine Datei direkt als ausführbar zu markieren chmod +x test.sh und dann mit ./test.sh direkt auszuführen. Die Shell schaut dann in der ersten Zeile (Shebang genannt), wie diese Datei ausgeführt werden kann. Gewöhnlich steht dort einfach: #!/bin/sh Das ist gleichbedeutend mit dem Aufruf: /bin/sh test.sh Mit Java ab Version 10 und dem enthaltenen JEP 330 wird dies nun genauso einfach: Ist die Datei ausführbar markiert, kann man Sie wie jedes Shell-Script starten: $ ./helloworld.java Hello World! Dafür muss java über $PATH erreichbar sein. Viel Spaß beim Shell-Scripten mit Java!

ReadWriteGuard

Der ReadWriteGuard ist eine Java-Klasse, mit der man Ressourcen schützen kann, die parallele Lesevorgänge unterstützen, aber nur isoliert verändert werden können. Während dieser Änderungen soll kein zweiter Thread lesend oder schreibend darauf zugreifen. In grauer Vorzeit hat man dafür seine Anweisung in einem synchronized -Block verpackt. Das ganze funktioniert nur etwas ZU gut, da auch alle Lese-Operationen voreinander geschützt werden und nicht parallel stattfinden können. Diesen Overhead kann man mit dem ReadWriteGuard umgehen und so die Parallelität verbessern: Der ReadWriteGuard hilft natürlich nur, wenn er bei allen Lese- und Schreiboperationen auch eingesetzt wird. Deswegen eignet er hauptsächlich für Datenstrukturen die intern verwendet werden. So kann man alle Zugriffe darüber absichern.

Hello World!

An dieser Stelle will ich von Zeit zu Zeit über ein paar Erkenntnisse oder Kniffe aus der Java und XSLT-Welt berichten. Vielleicht stößt jemand darauf und findet das nützlich?