Generally it's not.
ImageIO
reads the image within the same thread context it was called from, Toolkit.getDefaultToolkit().getImage()
uses a separate background Thread
to load the image in and returns (almost) immediately.
This is why you have MediaTracker#waitForAll
and MediaTracker#waitForID
and ImageObserver
. This all monitor the state of a image loading process which was created by Toolkit.getDefaultToolkit().getImage()
so they known when the image loading has completed...