【C#】虚函数、线程、进程

做C#项目学习的知识点,后续会慢慢增加内容。

虚函数

  • 定义:
    • 非类的成员函数不能定义为虚函数
    • 类的成员函数中静态成员函数和构造函数不能定义为虚函数
    • 析构函数可以定义为虚函数(通常均定义为虚函数,便于delete)
    • 在声明函数的类体中使用关键字“virtual”将函数声明为虚函数public virtual Type(不允许私有),而定义函数时不需要使用关键字“virtual”
    • 当将基类中的某一成员函数声明为虚函数后,派生类中的同名函数(函数名相同、参数列表完全一致、返回值类型相关)自动成为虚函数
    • 如果声明了某个成员函数为虚函数,则在该类中不能出现和这个成员函数同名并且返回值、参数个数、类型都相同的非虚函数。在以该类为基类的派生类中,也不能出现和这个成员函数同名并且返回值、参数个数、类型都相同的非虚函数
  • 作用

    实现多态性:通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数

线程与进程

  • 线程
    • 线程是操作系统能够进行运算调度的最小单位被包含在进程之中,是进程的实际运作单位。
  • 进程

    进程是程序执行的实例,是CPU资源分配的最小单位
    每个进程提供执行程序所需的资源,具有虚拟地址空间、可执行代码、对系统对象的打开句柄、安全上下文、唯一进程标识符、环境变量、优先级类、最小和最大工作集大小,以及至少一个执行线程
    每个进程都从一个“主线程”开始,并可以从它的任何线程中创建其他的线程。

  • 线程与进程的区别
    • 线程共享创建它的进程的地址空间,进程有自己的地址空间
    • 线程可以直接共享数据段,进程有父进程的数据段副本
    • 线程之间可以互相通信,进程必须使用进程间通信
    • 新线程很容易创建,新进程需要父进程的复制(???)
    • 线程可以对同一进程的线程进行相当大的控制,进程只能对子进程进行控制
    • 对主线程的更改(取消、改变优先级等)可能会影响进程中其他线程的行为,对父进程的更改不会影响其他进程
  • 线程安全
    • 针对于多线程任务同时操作全局变量或静态变量的情况
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值