** Useful Link**
Posix Threads :
http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html
RW Locks With Pthreads :
https://docs.oracle.com/cd/E53394_01/html/E54803/sync-52.html
UDP Implementation in C :
https://www.geeksforgeeks.org/udp-server-client-implementation-c/
Lock attribute implementation
The None Example Example :
https://linux.die.net/man/3/pthread_rwlock_init
Condition variables pthreads (used to signal threads when they can send messages) :