zoukankan      html  css  js  c++  java
  • 对并发的一些理解:为什么需要并发

    为什么需要并发?

    并发其实是一种解耦合的策略,它帮助我们把做什么(目标)和什么时候做(时机)分开。这样做可以明显改进应用程序的吞吐量(获得更多的CPU调度时间)和结构(程序有多个部分在协同工作)。做过Java Web开发的人都知道,Java Web中的Servlet程序在Servlet容器的支持下采用单实例多线程的工作模式,Servlet容器为你处理了并发问题。

    误解和正解:

        最常见的对并发编程的误解有以下这些:

        -并发总能改进性能(并发在CPU有很多空闲时间时能明显改进程序的性能,但当线程数量较多的时候,线程间频繁的调 度切换反而会让系统的性能下降)

        -编写并发程序无需修改原有的设计(目的与时机的解耦往往会对系统结构产生巨大的影响)

        -在使用Web或EJB容器时不用关注并发问题(只有了解了容器在做什么,才能更好的使用容器)

    下面的这些说法才是对并发客观的认识:

        -编写并发程序会在代码上增加额外的开销

        -正确的并发是非常复杂的,即使对于很简单的问题

        -并发中的缺陷因为不易重现也不容易被发现

     -并发往往需要对设计策略从根本上进行修改

    当多个线程执行同一个方法的时候,什么时候可能会出现异常结果:

      多个线程共享一块内存区域,在不加任何保护情况下,对其操作;

    什么时候可能会得到正确的结果:

      不使用共享内存,每个线程内存空间相互独立;

      多线程共享一块内存区域,但是对这块共享区域加锁访问;

    不积跬步无以至千里
  • 相关阅读:
    Seafile V4.1 安装笔记
    mysql int(3)与int(11)的区别
    python命令行参数处理模块 optparse 使用参考
    Python标准库 urllib2 的使用
    Python默认模块 os和shutil 实用函数
    ApacheBench 使用教程
    ThinkPHP中PATHINFO模式优化
    Perl中的特殊内置变量详解
    Perl内置变量速查表
    eclipse jetty debug
  • 原文地址:https://www.cnblogs.com/showme1942/p/6432747.html
Copyright © 2011-2022 走看看