Right now, most, if not all, native methods in LWAWT are called on event dispatch thread or other Java threads. In native, these methods contain the threading check:
However, these checks are mostly unnecessary since a user application just can't access the AppKit thread managed by AWT native code. Therefore these methods are always called from non-AppKit thread just by code design. These checks only consume memory and CPU resources. Also, for experimental purposes it may be useful to call some of these methods from the AppKit thread sometimes, in which case the checks do a bad job.