OpenGL has the concept of current contexts. You can only call OpenGL functions in threads where a context is current (but that doesn't mean you can't have multiple contexts in multiple threads).
OpenAL normally has a process-wide context. You can call OpenAL functions from any thread. Unless you use the ALC_EXT_thread_local_context
extension, in which case it operates more like OpenGL.
In terms of performance, it does make sense to use a separate thread for OpenAL. Especially with OpenAL Soft that LWJGL ships with, all sound processing happens on the CPU. It may be trivial for plain stereo playback, but depending on the features/extensions used (e.g. ALC_EXT_EFX or ALC_SOFT_HRTF
), it can get costly.