• 线程、角色与协作


    多线程使用场景:

    主(控)线程召唤了几个小弟来解决主(控)线程不方便处理的问题;

    召唤一个小弟或召唤一群小弟,各有分工,协同完成任务。

    普通的程序块通过if-else等流控来控制业务流程;

    线程通过线程变量来控制;

    与人类社会(公司组织)类似,线程编程的主要思想是任务分解、分离与汇报机制;

    线程的角色与一个责任人一样,是用来处理任务和task的;

    线程的编程思想即面向task编程;task是一个流程化的概念,是一个任务流的处理处理主体;

    相对与线程编程,普通编程是面向模块编程和面向对象编程的。

    线程api本身又是面向对象的概念。

    它的主要使用场景分如下三种:

    1)剥离一个次要任务交给另一个线程处理,处理完成后向主线程报告完成情况;相当于cs的模式;

    2)将一个规模比较大的任务拆分成几个小任务,每个小任务是整体任务的一部分(不分先后);召唤几个子线程来完成这些任务;全部完成以后向控制线程报告;工作组模式;

    3)将一个流水线的任务,按步骤分拆成几个小步骤,每个步骤完成任务的一个环节;召唤子线程来完成各个步骤;生产者-消费者模式;

    其它的使用场景,都是如上三种场景的组合和变种。

  • 相关阅读:
    .net大文件上传
    java文件上传和下载
    文件上传系统
    plupload上传大文件
    代码坏味道之夸夸其谈的未来性
    freemarker中的substring取子串
    【翻译自mos文章】在Oracle GoldenGate中循环使用ggserr.log的方法
    3种浏览器性能測试
    SDUTOJ 2772 KMP简单应用
    C++库研究笔记--用__attribute__((deprecated)) 管理过时代码
  • 原文地址:https://www.cnblogs.com/feng9exe/p/6803760.html
Copyright © 2020-2023  润新知