为什么使用多线程

多线程的概念定义这里不再赘述,网上资料一搜一大把。个人觉得为什么使用多线程需要从以下几个方面来理解:

多线程有什么用

  1. 发挥多核CPU的优势

单核CPU的多线程并不是真正的多线程,同一时间处理器只能处理一段逻辑,其利用线程间上下文切换来实现,频繁的切换势必会导致性能降低。多线程的在多核系统的使用才能真正发挥其优势。

  1. 防止阻塞

如果单核CPU上运行多线程程序会降低性能,为什么还要使用呢?可以想象,如果都是单线程处理,一个需要等待的线程占用了CPU肯定会整个程序不可用。多线程的价值就是哪怕一个线程阻塞了,也不影响其他线程的处理。

  1. 任务分解

一个大的任务分解成多个子任务,一定程度上可以加快任务的处理。

C#中创建线程的方式

C#中实现线程应用开发的类都包含在了System.Threading命名空间中,比较常用的是Thread,ThreadPool类

Thread类构造函数作用是创建线程,有两个重载版本,一个带参数,一个不带参数:

public Thread(ThreadStart start);

public Thread(ParameterizedThreadStart start);

ThreadStart或者ParameterizedThreadStart类型的声明如下:

public delegate void ThreadStart();

public delegate void ParameterizedThreadStart(Object obj);

创建线程的步骤:

//创建不带参数的线程(线程所关联的函数没有参数)

ThreadStart myThreadStart=new ThreadStart(myFunction);//把线程要启动的函数传(委托?)进ThreadStart变量去
Thread myThread=new Thread(myThread);//创建线程

myThread.Start();//启动线程

//创建带参数的线程

ParameterrizedThreadStart myThreadStart=new ParameterrizedThreadStart(myFunction);//把线程要启动的函数传(委托?)进ThreadStart变量去

Thread myThread=new Thread(myThread);//创建线程

myThread.Start(obj);//启动线程

但是在手动创建线程的时候不得不考虑几个问题:

  • 太多的线程浪费内存资源
  • 太多线程有损性能

为了设计和实现可伸缩的、可响应的和可靠的应用程序或组建,线程池是你必须采用的核心技术。

有关线程池,参考002

转载于:https://www.cnblogs.com/passlogs/p/7366503.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值