POSIX define send / recv como operaciones atómicas, por lo tanto, suponiendo que esté hablando de POSIX send / recv, entonces sí, puede llamarlos simultáneamente desde múltiples hilos y las cosas funcionarán.
Esto no significa necesariamente que se ejecutarán en paralelo: en el caso de envíos múltiples, el segundo probablemente se bloqueará hasta que se complete el primero. Probablemente no se dará cuenta de esto, ya que un envío se completa una vez que coloca sus datos en el búfer de socket.
Si usa sockets SOCK_STREAM, es menos probable que sea útil hacer cosas en paralelo, ya que send / recv puede enviar o recibir solo una parte de un mensaje, lo que significa que las cosas podrían dividirse.
El bloqueo de envío / recepción en los sockets SOCK_STREAM solo bloquea hasta que envían o reciben al menos 1 byte, por lo que la diferencia entre bloqueo y no bloqueo no es útil.