线程、角色与协作
2017-05-03 20:35
162 查看
多线程使用场景:
主(控)线程召唤了几个小弟来解决主(控)线程不方便处理的问题;
召唤一个小弟或召唤一群小弟,各有分工,协同完成任务。
普通的程序块通过if-else等流控来控制业务流程;
线程通过线程变量来控制;
与人类社会(公司组织)类似,线程编程的主要思想是任务分解、分离与汇报机制;
线程的角色与一个责任人一样,是用来处理任务和task的;
线程的编程思想即面向task编程;task是一个流程化的概念,是一个任务流的处理处理主体;
相对与线程编程,普通编程是面向模块编程和面向对象编程的。
线程api本身又是面向对象的概念。
它的主要使用场景分如下三种:
1)剥离一个次要任务交给另一个线程处理,处理完成后向主线程报告完成情况;相当于cs的模式;
2)将一个规模比较大的任务拆分成几个小任务,每个小任务是整体任务的一部分(不分先后);召唤几个子线程来完成这些任务;全部完成以后向控制线程报告;工作组模式;
3)将一个流水线的任务,按步骤分拆成几个小步骤,每个步骤完成任务的一个环节;召唤子线程来完成各个步骤;生产者-消费者模式;
其它的使用场景,都是如上三种场景的组合和变种。
主(控)线程召唤了几个小弟来解决主(控)线程不方便处理的问题;
召唤一个小弟或召唤一群小弟,各有分工,协同完成任务。
普通的程序块通过if-else等流控来控制业务流程;
线程通过线程变量来控制;
与人类社会(公司组织)类似,线程编程的主要思想是任务分解、分离与汇报机制;
线程的角色与一个责任人一样,是用来处理任务和task的;
线程的编程思想即面向task编程;task是一个流程化的概念,是一个任务流的处理处理主体;
相对与线程编程,普通编程是面向模块编程和面向对象编程的。
线程api本身又是面向对象的概念。
它的主要使用场景分如下三种:
1)剥离一个次要任务交给另一个线程处理,处理完成后向主线程报告完成情况;相当于cs的模式;
2)将一个规模比较大的任务拆分成几个小任务,每个小任务是整体任务的一部分(不分先后);召唤几个子线程来完成这些任务;全部完成以后向控制线程报告;工作组模式;
3)将一个流水线的任务,按步骤分拆成几个小步骤,每个步骤完成任务的一个环节;召唤子线程来完成各个步骤;生产者-消费者模式;
其它的使用场景,都是如上三种场景的组合和变种。
相关文章推荐
- (四)线程之间的协作
- 线程间协作的两种方式:wait、notify、notifyAll和Condition
- weblogic内部线程协作
- Java多线程之线程的状态以及线程间协作通信导致的线程状态转换
- 《Java高并发程序设计》学习 --3.1多线程的团队协作:同步控制
- 使用ExecutorService线程池,CountDownLatch完成线程协作
- 线程协作-生产者/消费者问题
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
- GPU编程自学5 —— 线程协作
- Java:使用wait()与notify()实现线程间协作
- 线程间协作wait()与notify()
- Java线程(三):线程协作-生产者/消费者问题
- Java多线程之线程间协作 notify与wait的使用
- 并发编程之 线程协作工具 LockSupport
- Java线程(三):线程协作-生产者/消费者模式
- Java:使用wait()与notify()实现线程间协作
- Java编程思想 之 线程协作
- 2.3.线程的同步和协作_锁
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition