当前位置:首页 > 内存 > 正文

一个线程占多大内存

  • 内存
  • 2024-09-04 02:12:46
  • 1211

一、进程、线程、超线程定义:进程是OS资源分配的基本单位,线程是CPU规划执行的基本单位(我理解为规划资源的基本单位);
关系:进程是一个容器,线程,没有线程就没有进程,所以线程也被称为轻量级进程。
内存分配:系统会为每个进程分配不同的内存空间;对于线程来说,除了CPU之外,系统不会给线程分配内存,线程组共享所属进程的资源。到达。。
资源共享和资源同步:进程有自己独立的地址空间和资源,所以共享比较复杂,需要IPC(进程间通信很简单)。它们属于谁并共享很简单。但同步比较复杂,需要加锁等措施。
内存密集型进程,转换复杂,CPU占用率低;线程占用内存少,切换简单,CPU占用率高
干扰:因为进程有自己的独立性。因此,地址空间和资源互不影响;线程共享其所属进程的资源,因此一个线程的故障可能会导致整个进程挂起。
超线程是Intel开发的一项技术。该技术在物理CPU中实现并提供两个逻辑线程。超线程的目的是增加处理器的逻辑线程,以充分利用CPU的资源。
超线程技术将处理器内部的两个逻辑核心模拟成两个物理芯片,让一个处理器同时运行两个线程,实现并行计算。超线程技术可以充分利用空闲的CPU资源。但当两个线程同时需要CPU中的相同资源时,没有占用资源的线程必须暂时挂起,直到另一个线程释放资源后才能继续。因此,超线程的性能并不等于2个CPU的性能。
二、Android中开启一个空线程会占用多少内存在启动线程之前;使用了3015936字节内存(大约3015K)。启动一个线程后,表明第一个线程启动时使用了约15K内存,启动10个线程后使用了3030904(约3030K)内存。表明已经使用了3071064(约3071K)内存。10从头开始​​的空线程大约使用55K内存。