您的位置:首页 > 理论基础 > 计算机网络

网络连接和线程的所需要的资源

2015-05-16 14:58 134 查看
一、疑问

     在刚开始接触网络连接(eg:http连接,或者是数据库连接)和线程的时候,就有看过这样的结论:连接或者线程的建立是很耗费资源的。也正因为这样,所以对于连接,在实际的运用当中,是会利用连接池来对其进行重用的。对于线程也是这样,会使用线程池来对其进行重用。 但是,一直困惑我的问题是:

  (1)为什么连接或者线程会占用的建立和销毁会很耗费资源,这些资源是指什么资源?

  (2)在java语言里面,相比普通对象而言,线程对象,连接对象有什么区别?

二、关于连接和线程

      (1)连接(eg:tcp连接,数据库连接(底层也是tcp连接)):因为连接不是物理上的连接,而是虚拟的连接。为了使得虚拟的连接获得和物理上的连接一样的效果(使得

                数据就像是顺序到达的那样),需要提供可靠性保证等机制。这些机制的建立需要借助---接收缓存,发送缓存,TCB(传输控制模块,tcp软件维护的数据结构,用来

  记 录, 缓存位置,当前发送序号,接收序号,窗口大小等等的信息)等等模块的帮助。所以说在建立连接的过程中,需要为上面所说的模块分配相应的资源。

      (2)线程:在创建线程的时候,需要为期分配运行过程所必须要有的一点儿资源。这些资源主要是:程序技术器+寄存器+堆栈+状态。

三、解答

     (1)在连接或者是线程的建立工程中,所耗费的资源是指计算机的资源(感觉好像废话。。。)主要是内存资源,用于分配给必要的数据结构。

     (2)对于java而言,线程对象和连接对象比起普通对象来,他多了上面所说的哪些必要的数据结构。

  

                             
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 线程 网络
相关文章推荐