小猪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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵