`
daojin
  • 浏览: 678054 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

最强大的多线程解决方案!!

阅读更多

前提条件:

1.CUP 指令是一条线执行下来的.(如果是两条线,呵呵!那就没办法同步了.)

   理解错误:

          同步要解决的根源性问题是:

    不是让CUP时间片被一个线程独占!(表面上好像是这样)

     而是使共享的资源被多个线程改来该去!

因此:

    线程的概念可以推广到任意的访问共享资源的对象:

          几个CPU,或者几个电脑,几个网络,甚至几个人。

    都可以被认为是一个线程。

2.支持多线程的操作系统.

一.多线程产生的原因

      开电视--->烧开水

   在这两个命令中,如果按照单线走--->

      要等到电视打开后,才能去烧开水.

   浪费了用户的时间(等待电视打开!!)

      如果能够直接同时扔给计算机两条命令(不用等待),该多好啊!!!

   因此就产生了多线程!!!

      一个线程就是一个指令序列.

   把这两个线程同时撇给计算机(开电视,烧开水);

   然后用户仅仅只需要等待了!!

二.多线程引发的后果:"开电视机"和"烧开水"同时去使用同一个电源插孔的时候.

   因为多个线程共享受一个内存块,问题是:

  当"开电视机"和"烧开水"同时去使用同一个电源插孔的时候:

   是"开电视呢",还是"烧开水"呢

三.多线程的最好的做法应该为:等烧好开水,再去开电视!!!

四.问题是"计算机是个傻子!"

   它的路线是:

    烧开水(没烧好)--------->开电视(没打开)-------->烧开水(没烧好)--------->开电视(没打开)-------->烧开水(没烧好)

    --- ------>开电视(没打开)-------->烧开水(没烧好)--------->开电视(没打开)-------->..........

五.因此,我们要自己去控制他们的行为.

 

  

 

 

  

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics