OpenGL is single threaded with a single state machine (ok there are some atomic supports via extensions). Vulkan allows you to manage the stream so you can multi-thread. This allows you to update more that 1 state at a time, for example in OpenGL loading textures and mesh data at the same time can't happen easily. In vulkan you can tune this yourself. (this is a very simplistic example). I usually say that Vulkan is more akin to you writing the graphics driver. Where as OpenGL gives you the driver.