当前位置: 首页 > news >正文

wordpress微信商户支付百度优化公司

wordpress微信商户支付,百度优化公司,做网站需准备些什么,哪个网站有免费空间PostMan不是严格意义上的并发请求工具,实际是串行的,如果需要测试后台接口并发时程序的准确性,建议采用JMeter工具。 案例:JMeter设置20个并发卖票请求,查看后台是否存在超卖的情况 方式一:一共10张票&…

        PostMan不是严格意义上的并发请求工具,实际是串行的,如果需要测试后台接口并发时程序的准确性,建议采用JMeter工具。

案例:JMeter设置20个并发卖票请求,查看后台是否存在超卖的情况

 方式一:一共10张票,票余额作为成员属性放在控制器中,没做任何的锁控制

package com.gingko.controller;
import com.gingko.common.GenericWebResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Scope;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Random;@RestController
@RequestMapping("ticket")
@Slf4j
public class TicketController {private static int TICKET_AMOUNT = 10;//一共10张票@PostMapping("/sell")public GenericWebResult sell() {GenericWebResult result = null;if(TICKET_AMOUNT > 0) {try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}TICKET_AMOUNT--;System.out.println("售票成功:余票" + TICKET_AMOUNT);result = GenericWebResult.ok("售票成功:余票",TICKET_AMOUNT);}else {result = GenericWebResult.error("售票失败:余票",TICKET_AMOUNT);System.out.println("售票失败:余票" + TICKET_AMOUNT);}return result;}
}

运行结果及分析: 

从运行结果可以看出,在高并发的时候,出现了超卖和数据不一致的问题

 方式二:一共10张票,票余额作为成员属性放在控制器中,卖票的请求方法上加锁synchronized

package com.gingko.controller;
import com.gingko.common.GenericWebResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Random;@RestController
@RequestMapping("ticket")
@Slf4j
public class TicketController {private static int TICKET_AMOUNT = 10;//一共10张票@PostMapping("/sell")public synchronized GenericWebResult sell() {GenericWebResult result = null;if(TICKET_AMOUNT > 0) {try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}TICKET_AMOUNT--;System.out.println("售票成功:余票" + TICKET_AMOUNT);result = GenericWebResult.ok("售票成功:余票",TICKET_AMOUNT);}else {result = GenericWebResult.error("售票失败:余票",TICKET_AMOUNT);System.out.println("售票失败:余票" + TICKET_AMOUNT);}return result;}
}

运行结果及分析: 

 从运行结果可以看出,在高并发的时候,没有出现超卖或数据不一致问题,数据结果符合预期。

方式三:TicketController对象多例,并且TICKET_AMOUNT属性不是static,每个对象各自持有

package com.gingko.controller;
import com.gingko.common.GenericWebResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Scope;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Random;@RestController
@RequestMapping("ticket")
@Slf4j
@Scope("prototype") //多例
public class TicketController {private int TICKET_AMOUNT = 10;@PostMapping("/sell")public GenericWebResult sell() {GenericWebResult result = null;if(TICKET_AMOUNT > 0) {try {Thread.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}TICKET_AMOUNT--;System.out.println("售票成功:余票" + TICKET_AMOUNT);result = GenericWebResult.ok("售票成功:余票",TICKET_AMOUNT);}else {result = GenericWebResult.error("售票失败:余票",TICKET_AMOUNT);System.out.println("售票失败:余票" + TICKET_AMOUNT);}return result;}
}

运行结果及分析:  

从程序可以看出,20个并发请求,后台生成了20个TicketController实例,每个实例内部都持有属性TICKET_AMOUNT = 10,sell方法执行后,TICKET_AMOUNT = 9

方式一、方式二与方式三示意图区别如下:

方式一、二,堆内存中只有一个TicketController实例,并且TICKET_AMOUNT不属于实例对象,属于共享的数据区,对这种共享数据并发操作时,需要锁机制控制,防止出现数据不一致。

方式三,并发请求多少,堆内存中生成多少个TicketController实例,并且每个TicketController实例各自持有TICKET_AMOUNT,访问各自的成员属性也就不会发生数据不一致问题。

http://www.ritt.cn/news/2066.html

相关文章:

  • 网站源码还可以做授权么著名的个人网站
  • 茂名网站制作价格网站一键生成
  • 新网站提交百度收录seo刷关键词排名工具
  • wordpress分类添加htmlseo博客推广
  • 深圳市企业网站seo营销工具重庆seo技术博客
  • 网站服务器租用还是托管呢武汉全网营销推广公司
  • 网页兼容性站点seo产品是什么意思
  • 玉溪网站建设制作美国今天刚刚发生的新闻
  • 做一网站要什么个人怎么做网站
  • 网站建设公司考察域名备案查询
  • 青岛微网站开发百度云搜索引擎入口
  • wordpress建设购物网站百度官方优化软件
  • 影响网站排名的因素 权重小程序开发哪家更靠谱
  • 拦截WordPress请求南京谷歌seo
  • 网络架构和网络拓扑的区别中山seo
  • 想自己做网站需要会什么软件推广联盟平台
  • 辽宁网站建设多少钱推广优化网站
  • 河源wordpress培训百度seo点击工具
  • 做网站app公司前景线上直播营销策划方案
  • 网站建立后被别人点击要付钱吗优化人员配置
  • 团购鲜花的网站建设找人帮忙注册app推广
  • 网站开发武汉公司成都有实力的seo团队
  • 网站建设的利益如何推广软件
  • 禹城网站设计百度识图查另一半情头
  • 汾阳做网站大数据精准营销系统
  • 东莞市网络优化推广服务机构嘉兴seo外包平台
  • 简述电子商务网站的建站流程百度极速版推广员怎么申请
  • 写作网站新手百度指数代表什么意思
  • 别人怎么看见我做的网站软件培训机构
  • 兰州网站建设价韩国最新新闻