更加着重于坏处。。

解决方案 »

  1.   

    坏处:增加了调度和管理的开销,带来了一些不确定性,需要复杂的同步机制,避免死锁等等。
    好处:一定程度上提高响应速度,在多核的情况下还是更能充分利用CPU资源的。
      

  2.   

    多线程是一种重要的思想。本质上是宏观上并行微观上串行。其实对于单cpu其实还是单线程,但这样做能有效地提高效率。
    打比方就是你在烧开水,然后马上去上网了。这个时候其实你是在等开水开了之后你在去倒,而不是一直做着等开水开了再去上网。这样其实时间片的利用率就高了。优势就在这里。对于cpu而言,由多线程带来的共享冲突这个是最大的坏处。很多问题都是由于这个问题或者是为了解决这个问题而引起的一系列的问题导致的。比如今天你在单核的机子上同时拷两个大文件这样,其实还不如你一个一个文件拷来的快。就是我说的第二种情况,因为cpu的资源切换也是要消耗时间的。
    同样的共享冲突也会是个问题。比方:学校里有块黑板报,今天我写了个“1”,明天有个捣蛋的把它改成了“2”,这样信息已经不是我们期望的值了。当然我们会提出一系列的措施来杜绝此类事的发生,比如给黑板报加个框,并上锁,这个钥匙只归我所有,这样只能我进行信息修改,如果别人也想改必须也要获得此钥匙!这就是解决多线程共享的锁机制!