并发编程学习历程(一)Synchronized

一、
public class TradePushRequest implements ErpRequest {



    /**
     * 店铺编号
     */
    @NotNull(message = "店铺编号不能为空")
    @JSONField(name = "shop_no")
    private String shopNo;

    /**
     * 订单列表
     */
    @NotNull(message = "订单列表不能为空")
    @JSONField(name = "trade_list")
    private List<TradePushOrder> tradePushOrderList;


    /**
     * @return shopNo
     */
    public String getShopNo() {
        return shopNo;
    }

    /**
     * @param shopNo shopNo
     */
    public void setShopNo(String shopNo) {
        this.shopNo = shopNo;
    }

    /**
     * @return tradePushOrderList
     */
    public List<TradePushOrder> getTradePushOrderList() {
        return tradePushOrderList;
    }

    /**
     * @param tradePushOrderList tradePushOrderList
     */
    public void setTradePushOrderList(List<TradePushOrder> tradePushOrderList) {
        this.tradePushOrderList = tradePushOrderList;
    }
}

优点 缺点 适用场景
偏向锁 进出同步代码块无需额外消耗 如果线程间存在竞争,存在额外的撤消的消耗 仅适用于单线程使用锁场合
轻量级锁 线程自旋竞争锁,不需要阻塞,响应速度提高 频繁的锁竞争,消耗CPU 适用没有线程竞争,线程交替执行的场合
重量级锁 线程竞争锁不需要自旋,不会消耗CPU 线程等待锁释放需要阻塞,响应时间不及时 适用线程竞争大的场合,追求吞吐量。





猜你喜欢

转载自www.cnblogs.com/apescode/p/9140582.html
今日推荐