zoukankan      html  css  js  c++  java
  • .Net中的异步编程

    .Net中的异步编程?
    .net中实现异步有两种方式:第一种是多线程的方式,第二种是使用异步函数,其实在异步函数中使用的还是多线程的技术。

    异步编程中比较关注也比较重要的技术点在于:1、当异步线程在工作完成时如何通知调用线程;2、当异步线程出现异常的时候该如何处理;
    3、异步线程工作的进度如何实时的通知调用线程;4、如何在调用线程中取消正在工作的异步线程,并进行回滚操作。


    虽然在.net中提供了众多的异步编程模式,但是推荐最好使用Task类,因为Task类使用线程池中的任务线程,又由线程池管理,效率相对来说较高,而且Task类内部有比较好的机制,能让调用线程与任务进行交互。反正不管用哪种模式,总之尽量不要出现阻塞的情况,只要程序中出现线程阻塞,线程池就会创建新的活动线程,因为线程池总是要保证活动的任务线程数量与CPU的核数一致,它觉得这样性能最佳,当阻塞的线程恢复正常之后,线程池又会将多余的线程销毁,避免系统调度线程时频繁的进行上下文切换。这样的创建、销毁线程是非常的浪费系统资源影响性能的。而在线程同步的时候常常会出现阻塞的情况,所以能设计不用线程同步去解决问题,尽量不用线程同步。

  • 相关阅读:
    C语言II—作业03
    C语言II博客作业01
    学期总结
    第一次作业!
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    第三次作业!
  • 原文地址:https://www.cnblogs.com/zmdblogs/p/6076995.html
Copyright © 2011-2022 走看看