客户端向服务端请求数据后要接收服务端给客户端返回的数据,那这数据也要保存在一个地方吧,那是保存在栈还是堆呢?
比如传过来一个指针,那客户端也要开辟一样的内存区域用来放这数据吧。那这样同一份数据是不是就在客户端和服务器各保存了一份
情况二:上述是在不同机器上的程序,如果两个进程跑在同一台机器上,那数据的分配又有何差异,比如传递过去的数据内存里已经有了,就没必要再开辟新的区域了吧?两个用这同一份区域的内容是不是就可以了?
客户端向服务端请求数据后要接收服务端给客户端返回的数据,那这数据也要保存在一个地方吧,那是保存在栈还是堆呢?
比如传过来一个指针,那客户端也要开辟一样的内存区域用来放这数据吧。那这样同一份数据是不是就在客户端和服务器各保存了一份
情况二:上述是在不同机器上的程序,如果两个进程跑在同一台机器上,那数据的分配又有何差异,比如传递过去的数据内存里已经有了,就没必要再开辟新的区域了吧?两个用这同一份区域的内容是不是就可以了?
(1)一般来说保存在堆上。
(2)一般情况保存2份,但是你可以在进程之间使用共享内存,那样可以只保存一份。保存一份你需要注意不同进程同时读写的时候,要做好同步。