小猪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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog