demo 1 and demoe 2 is a pair, used to demo read and write shared memory with and without mutex. Run demo 1 -> demo 2
demo 3 demos original allocator
demo 4 and demo 5 is a pair, used to demo custom alloctor. run demo 4 -> demo 5. then terminate demo 4, change push and pop process in demo 3 then run it again -> see output in demo 5 output

other 2 pair of client and server programs are demo of nornal C and Cpp shared memory usage.
