首页 > 系统相关 >进程与线程

进程与线程

时间:2024-03-11 10:45:20浏览次数:19  
标签:Thread teb dll 线程 进程 dllmain

进程与线程:

进程:

  进程是操作系统资源分配的单位,其中存放dll,代码,堆,栈

线程:

  调度单位

多线程优点:

  1.提高响应能力:GUI程序,主线程操作UI,耗时操作放在工作线程中

  2.提高程序性能

线程有哪些开销:

  空间上:

    1.数据结构上

      C#:Thread 类

      CLR: Thread (C++)

      OS: Thread 

    2.线程栈

      一个线程默认最大栈空间1M,线程越多,栈空间越大

    3.teb开销  teb:线程环境块

          TLS(线程本地存储)

  时间上:

    1. dllmain:非托管dll 上面有 dllmain,当线程start和exit的时候会通知这些dll做一些资源清理什么的

    2.上下文切换:CPU和线程的交互,大约30ms一次,thread暂停时保存数据,恢复时恢复数据.

          如果上下文切换非常频繁,会造成cpu爆高.

标签:Thread,teb,dll,线程,进程,dllmain
From: https://www.cnblogs.com/anlingxiao/p/18065559

相关文章

  • 深入浅出Java多线程(十):CAS
    引言大家好,我是你们的老伙计秀才!今天带来的是[深入浅出Java多线程]系列的第十篇内容:CAS。大家觉得有用请点赞,喜欢请关注!秀才在此谢过大家了!!!在多线程编程中,对共享资源的安全访问和同步控制是至关重要的。传统的锁机制,如synchronized关键字和ReentrantLock等,能够有效防止多个线程......
  • Prometheus监控系统进程---process-exporter
    参考文档Namedprocessesstacked|GrafanaLabsNamedprocesses|GrafanaLabsncabatoff/process-exporter:Prometheus导出器,用于挖掘/proc以报告所选进程(github.com)操作步骤下载安装包wgethttps://github.com/ncabatoff/process-exporter/releases/download/v0.7.......
  • 在Linux中,什么时候需要用到进程的优先级?
    在Linux系统中,进程的优先级是一个重要的调度参数,用于决定操作系统如何分配CPU时间给不同的进程。以下是几个需要调整或考虑进程优先级的情况:关键服务或任务:对于一些关键的系统服务或者对实时性要求较高的应用,如数据库服务器、实时控制系统、高性能计算任务等,我们可能需要提升......
  • 多线程系列(十六) -常用并发原子类详解
    一、简介在Java的java.util.concurrent包中,除了提供底层锁、并发同步等工具类以外,还提供了一组原子操作类,大多以Atomic开头,他们位于java.util.concurrent.atomic包下。所谓原子类操作,顾名思义,就是这个操作要么全部执行成功,要么全部执行失败,是保证并发编程安全的重要一环。相......
  • HashMap线程不安全实例(jdk1.7)
    一、前言jdk1.7中,以put()方法举例,线程不安全的一些情况:1,初始化HashMap的桶数组的时候,一个线程初始化了桶数组并插入了第一个元素,但是另一个线程不知道初始化好了,也执行了初始化的操作,清除了前面线程已经插入的元素;2,两个线程同时触发扩容,在翻转同个桶位上的链表时,链表形成环,类似......
  • Linux多线程-线程同步
    线程同步当多个线程同时对一个共享数据进行操作时,会导致数据竞争,下面例子展示了数据竞争的情况:1#include<pthread.h>2#include<stdio.h>3#include<stdlib.h>4#include<string.h>5#include<unistd.h>67staticintval=0;8void*threadEntry(void*......
  • Linux多线程
    线程的概念线程是指程序中的一条执行路径。在一个进程中,至少有一个线程,称为主线程,通过主线程可以派生出其他子线程。Linux系统内核只提供了轻量级进程(light-weight process)的支持,并未实现线程模型。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。进程是......
  • Java面试必考题之线程的生命周期,结合源码,透彻讲解!
    写在开头在前面的几篇博客里,我们学习了Java的多线程,包括线程的作用、创建方式、重要性等,那么今天我们就要正式踏入线程,去学习更加深层次的知识点了。第一个需要学的就是线程的生命周期,也可以将之理解为线程的几种状态,以及互相之间的切换,这几乎是Java多线程的面试必考题,每一年都......
  • 分布式锁——JVM锁、MySQL锁解决多线程下并发争抢资源
    分布式锁——JVM锁、MySQL锁解决库存超卖问题引入库存扣案例需求背景电商项目中,用户购买商品后,会对商品的库存进行扣减。需求实现根据用户购买商品及商品数量,对商品的库存进行指定数量的扣减publicStringdeductStock(LonggoodsId,Integercount){//1.查询商品......
  • 多进程、多线程知识再整理
    #threading模块'''cpython全局解释器锁导致同时只能有一个线程执行python,利用多cpu执行cpu密集型任务使用多进程,密集io型可以使用多线程并发classthreading.Thread(group=None,target=None,name=None,args=(),kwargs={},*,daemon=NoneThread类代表一个在独立控制线......