I can speak, sparingly, to threads.
POSIX.1c, Threads Extensions (IEEE Std 1003.1c-1995) defined thread APIs, so if you use pthreads() there should not be a programmatic difference between POSIX-compliant operating systems, with the understanding that the supporting libraries and kernel syscalls may be very different.
But the BSDs do not all use the same technologies. And within a single BSD, the underlying services may change -- OpenBSD replaced its underlying thread technology
in 2012. That new
RThreads technology had been in development for seven years.