Shared State VS Separate State in Concurrency Models