假设有一个网站,有一个用户注册,他会发生并发问题吗?一般的增删改查都需要处理并发问题吗?还是说只有在网站访问量很大时才需要对增删改查做并发处理?

解决方案 »

  1.   

    不管怎么样都会发生并发,但大多不需要考虑
    一般情况下,有约束的情况下才需要考虑,比如注册,手机号不能重复,那仅仅是查询当前数据库是否存在相同手机号是不够的,这样存在并发问题(在一般数据库默认的事务隔离级别下),要么唯一约束,要么加锁
    上面是insert的场景,还有update场景,比如秒杀,避免超卖之类的
      

  2.   

    像一般controller层如果只是简单的增删改查,不使用全局变量还有共享变量,就不会出现并发问题,是这样子吧,并发与否根据自己使用的变量有关是吧?
      

  3.   

    像一般controller层如果只是简单的增删改查,不使用全局变量还有共享变量,就不会出现并发问题,是这样子吧,并发与否根据自己使用的变量有关是吧?controller虽然不会并发,但是service和dao可以呀
      

  4.   

    像一般controller层如果只是简单的增删改查,不使用全局变量还有共享变量,就不会出现并发问题,是这样子吧,并发与否根据自己使用的变量有关是吧?controller虽然不会并发,但是service和dao可以呀service与dao会不会并发,依然根据你是否使用了全局变量来判断会不会发生并发吧
      

  5.   

    你也业务简单,没有使用全局静态变量,基本不需要考虑并发,因为web服务譬如tomcat对每次请求都是new一个servlet实例(或者是jsp的实例),不存在同步的问题。数据库连接也是一个连接池,你没获取到连接也会等待,所以基本不需要考虑并发
      

  6.   

    楼主, 多考虑问题没有错, 但是这个代码世界总有并发的问题
    1, 你代码没有问题, 但有可能请求的资源有并发问题, 比如: 数据库操作
    2, 你代码没有问题, 但是别人的代码有问题, 你要调用别人的服务,比如: 阿里云
    3, 你代码没有问题, 但是硬盘有问题, 你请的文件, 其它程序也在请求,并发冲突.并发是无处不在的, 也处处没有, 
    并发是悲观的, 也是乐观的,
    去政府办事,遇到并发也要排队, 如果人少就没有并发.我的解决办法是, 如果我是项目经理我就做顶层设计, 
    如果我不是项目经理, 我就保证我自己的代码:
    1, 让自己的代码尽可能的快, 不给项目出麻烦.
    2, 让自己的SQL达到最快的速度, 减少并发的机会.
    3, 如果一定要并发就用排队, 线程等待, 接口回调等方法来处理.
    4, 如果要与别人抢资源, 做到用完之后立即释放.