zoukankan      html  css  js  c++  java
  • C#进程、线程、CPU

    ===============================================C#线程===========================================================================

    基本知识:

    线程和进程

    1.在创建进程时,内核会为进程创建相应的堆栈,每个进程会有两个栈,一个是用户栈,另外一个则是内核栈

    2.一个进程中,包含多个线程

    3.当你打开一个程序很慢,这是因为此时的CPU运行的进程数太多,该进程需要等待调度,才能真正运行

    4. 一般来说,打开一个应用程序就会创建一个进程

    5. 一个进程的内存空间是可以共享的,每个线程都可以使用这些共享内存

    6. 一个线程在占用某些共享内存时,其他的线程就不能进来,必须要等前一个线程走完才能够使用共享内存,这个时候就需要加一把互斥锁(mutex),告诉其他线程这块共享内存已被占用!防止多线程读写通一块共享内存

    7.有些内存区域,只能供给固定的线程使用,这里就会牵扯一个词叫信号量(semaphore)数量,即这个内存区域只能供给固定数目的线程访问,满了线程后,后面的线程只能排队,直到有线程让出,后面的线程才能进入,保证多个线程不会冲突


    =============================操作系统的设计======================================================
    1. 以多进程形式,允许多个任务同时运行

    2. 以多线程的方式,把进程分为不同的部分进行

    3. 协调机制:防止进程与线程之间产生的冲突,运行进程之间内存共享

    ===============================CPU================================================================

    1.计算机的核心是CPU,它负责所有的计算任务,时刻在运行

    2.单个CPU一次只能运行一个任务

    内核:提供操作系统最基本的功能,负责管理系统的进程、线程、设备驱动程序、文件和网络系统

    Cpu寄存器: 是Cpu用来存储数据的小型存储区域

    用户模式栈:在函数执行执行之前记录函数的地址,然后等函数调用完之后,再返回前面所记录的地址

    内核模式栈:在调试的时候 不能修改代码的原因是 用户模式栈不能访问内核模式栈 ,在执行之前代码都被送去内核了

  • 相关阅读:
    rss相关资料(TODO)
    chrome extension 开发
    macos finder 创建smart folder
    JDK 16都发布了,为什么我们要关心Java8
    你真的了解索引吗(上)?|mysql 系列(6)
    VARCHAR 最多存多少个字符?|mysql系列(3)
    Ansible 快速入门
    MySQL 中存储时间的最佳实践
    没登录网页也能个性化推荐?一文详解浏览器指纹
    私有化仓库的 GO 模块使用实践
  • 原文地址:https://www.cnblogs.com/XiangZiPeng/p/12178158.html
Copyright © 2011-2022 走看看