Thanks all for the replies about threading, I'm trying to digest all that information.
It looks like native language threading (which is what I meant with native anyway) or thread-safe libraries is no holy grail, mainly because of bad performance. So it's at this point definitely not a decisive reason to choose for Java.
You can indeed hide locking nicely in C++ classes, but it get's bad for performance if you have to scale over more than a few threads in my experience. That's probably why in our software here at work concurrency is done in a number of different ways. Functionality is split over a number threaded processes that use message passing and load-balancing. I guess it will stay like that for the near future, the solution probably won't come from the programming language then.
It looks like native language threading (which is what I meant with native anyway) or thread-safe libraries is no holy grail, mainly because of bad performance. So it's at this point definitely not a decisive reason to choose for Java.
You can indeed hide locking nicely in C++ classes, but it get's bad for performance if you have to scale over more than a few threads in my experience. That's probably why in our software here at work concurrency is done in a number of different ways. Functionality is split over a number threaded processes that use message passing and load-balancing. I guess it will stay like that for the near future, the solution probably won't come from the programming language then.