用多线程又有几种常用的编程模型

赤道旱鸭子

赤道旱鸭子

2016-02-19 19:01

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享用多线程又有几种常用的编程模型,希望可以对大家能有小小的帮助。

?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

我这里可以大概给你介绍一下,但对于每一种编程模型要看具体的示例是什么,而且我不可能给你罗列所有的代码,请谅解。
  
  其实我们编程只要尽量站到比较高的层次,很多道理其实你会发现你已经懂了。
  
  就多线程来说,我们开始设想只有两个线程(2时是不是算数学归纳法?)那么假如两个独立的线程会发生什么呢?
  
  1。当一个线程进入moniter(也就是说站用一个object),另一个线程只有等待或返回,而我们把返回就称为一种模式,这种模式的英文是Balking。
  
  2。这两个线程可以是有序的执行,而不是让OS来调度,这时我们要用一个object来调度,这种模式称为Scheduler。(这个词及其含义其实OS中就有)。
  
  3。假如这两个线程同时读一个资源,我们可以让他们执行,但假如同时写的话,你闭着眼睛都会知道可能出现问题,这时我们就要用另一种模式(Read/Write Lock)。
  
  4。假如一个线程是为另一个线程服务的话,比如IE中负责数据传输的线程和界面显示的线程,当一个图片没有传完时,另一个线程就无法显示,至少是部分没有传完。那么这时我们要用一个模式称为生产者和消费者,英文是Producer-Consumer。
  
  5。两个线程的消亡也可以不是完全又OS来控制的,这时我们需要给出一个条件,使得每个线程在符合条件是才消亡,也就是有序的消亡,我们称为Two-Phase Termination。
  
  那么有这5个线程模型,基本上可以用到大多数编程任务中。我需要指出的三点是:
  
  1。从高层次上我们可以再验证是否含盖了所有的情况。
  
  2。其实模式不是完全固定的或者说象定律一样,而模式可以为不同的情况进行适当 的调整和组合,目的是为了简洁和高效。
  
  3。学习模式是为了具备更好的分析问题的能力。
  
  而似乎这些来自西方的技术,并且是目前的,我们有没有呢?其实我个人有个大胆的推测,我认为我们祖先的《孙子兵法》就是很好设计模式,因为它符合设计模式需要的基本特征,就是在特定的条件下,用某种特定的方式合理且高效的解决问题。只不过一是用在军事上,二是完备性方面我们还没研究。但我认为我们至少没有很好的扩展和进行类比式的应用,否则今天可能是我们中国人教外国人什么是设计模式。
  
  类比的方法实际上是发明或发现的常用方法。不知能否让你感觉到其实外国的技术并不是那么的神秘,也许我们从自身的文化当中挖掘出的东西太少了。
  P.S.更深一步的研究你可以参考Doug Lea. .

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

用多线程又有几种常用的编程模型

编程语言 网络编程
用多线程又有几种常用的编程模型

Java 多线程编程

编程语言 网络编程
Java 多线程编程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java多线程编程精要

Java JAVA基础
Java多线程编程精要

Linux下的多线程编程

编程语言 网络编程
Linux下的多线程编程

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

实战体会Java的多线程编程

编程语言 网络编程
实战体会Java的多线程编程

浅析.Net下的多线程编程

电脑网络
浅析.Net下的多线程编程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Java多国语言问题解决方案

Java多国语言问题解决方案

Word2003标记索引项和索引的生成

Word2003标记索引项和索引的生成
下拉加载更多内容 ↓