小猪piy 2019-09-04 21:47 采纳率: 50%
浏览 709
已采纳

关于如何模拟高并发,这是我在网上看到的一个,请问这样算是高并发模拟吗?

<title>参数</title>
    <!-- 加载Query文件-->
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.0.js">
    </script>
    <script type="text/javascript">
        $(document).ready(function () {
            //模拟10000个异步请求,进行并发
            //真正对数据库存储产生影响的是为user用户的stock数量
            var max = 15000;
            for (var i = 1; i <= max; i++) {
                //jQuery的post请求,请注意这是异步请求
                $.post({
                    //根据自己请求修改对应的url
                    // url: "./question/insertQuestionByRedis.do?times="+i+"&userId=1&question=问题"+i.toString()+"&answer=答案", //使用redis
                    url: "./question/insertQuestion.do?userId=1&question=问题"+i+"&answer=答案",      //没有使用Redis
                    //成功后的方法
                    success: function (result) {
                    }
                });
            }
        });
    </script>

利用for循环异步提交,但是for循环是一个一个来的,有点不太懂,请求大佬解答下。

  • 写回答

3条回答 默认 最新

  • Json-Huang 2019-09-04 22:29
    关注

    这个是高并发模拟请求,并发很容易跟并行这个概念混淆,计算机操作系统也对并发做过说明,只要在很短时间段内,上一个请求未执行完毕前下一个请求发起都可以算宏观意义的并发。for循环执行是很快的操作,所以是并发而不是并行。

    下面摘百度百科介绍并发和并行区别,可以参考下:

    并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。
    
    并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突