zoukankan      html  css  js  c++  java
  • 并发编程基础

    并发编程技术:多线程,异步编程,并行处理,TPL数据流,响应式编程。

    并发:同时做多件事。

    多线程:并发的一种形式,采用多个线程来执行程序。

    异步编程:并发的一种形式,采用future模式或回调callback机制,以避免产生不必要的线程。

    并行处理:把正在执行的大量的任务分割成小块,分配给多个同时运行的线程。(并行处理是多线程的一种)

    响应式编程:一种声明式的编程模式,程序在该模式中对事件做出响应。

    1.1 异步编程

    异步编程的核心:启动了的操作会在一段时间后完成,这个操作正在执行时,不会阻塞原来的线程。启动了这个操作的线程,可以继续执行其他任务。

    1.2 并行编程

    并行的形式有两种:数据并行和任务并行。

    数据并行:有大量的数据需要处理,并且每一块数据的处理过程都是彼此独立的。

    任务并行:执行大量任务,并且每个任务的执行过程都是彼此独立的。

    实现并行的做法:使用parallel类型或是PLinq

    1.3 响应式编程

    如果事件中带有参数,最好使用响应式编程,而不是常规的事件处理流程。

    响应式编程的代码,最终非常像Linq。

    1.4 TPL数据流

    TPL数据流是将异步和并行编程两者结合的技术,适合需要对数据进行一连串处理的操作。例如:从一个URL上下载数据,接着解析数据,然后把它和其他数据一起做并行处理。

    数据流网络的基本组成单元是数据流块。

    数据流块可以使目标块(接收数据)或是源块(生成数据)。

    1.5 多线程编程

    线程是一个独立运行的单元,每个进程内部有多个线程,每个线程可以各自同时执行指令。每个线程都有自己独立的栈,但是与进场内的其他线程共享内存。

  • 相关阅读:
    图论--曼哈顿距离最小生成树模板
    图论--生成树计数模板
    图论--欧拉回路--弗罗莱算法模板
    Codeforce 1255 Round #601 (Div. 2)D. Feeding Chicken (模拟)
    pta 习题集5-17 家谱处理
    pta习题集5-16 地下迷宫探索
    pta 习题集5-17 哥尼斯堡的“七桥问题”
    pta习题集5-16 朋友圈
    pta 习题集5-19 列车厢调度
    pta 习题集5-18 打印学生选课清单
  • 原文地址:https://www.cnblogs.com/shiblog/p/10024733.html
Copyright © 2011-2022 走看看