[转]Java CAS 原理剖析 有更新!

  |   0 评论   |   492 浏览

在Java并发中,我们最初接触的应该就是synchronized关键字了,但是synchronized属于重量级锁,很多时候会引起性能问题,volatile也是个不错的选择,但是volatile不能保证原子性,只能在某些场合下使用。

synchronized这种独占锁属于悲观锁,它是在假设一定会发生冲突的,那么加锁恰好有用,除此之外,还有乐观锁,乐观锁的含义就是假设没有发生冲突,那么我正好可以进行某项操作,如果要是发生冲突呢,那我就重试直到成功,乐观锁最常见的就是CAS

volatile关键字解析 有更新!

  |   0 评论   |   370 浏览

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。

  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。

  以下是本文的目录大纲:

  一.内存模型的相关概念

  二.并发编程中的三个概念

  三.Java内存模型

  四..深入剖析volatile关键字

  五.使用volatile关键字的场景

我在 GitHub 上的开源项目

  |   0 评论   |   555 浏览
  1. goods Java 🤩1  ⭐️2  🖖0 网络书城源码 2. note 🤩1  ⭐️0  🖖0 日常笔记 3. java-example Java 🤩1  ⭐️0  🖖0 java一些项目示例 4. design-patterns Java 🤩1  ⭐️0  🖖0 阅读书籍 《Head Frist 设计模式》练习代码 5. code-generate Java 🤩1  ⭐️0  🖖1 代码一键生成 6. miniapp JavaScript 🤩1  ⭐️0  🖖0 小程序 7. springboot-web Java 🤩1  ⭐️0  🖖0 springboot脚手架 8. cloud Java 🤩1  ⭐️0  ?....

java+selenium+autoIt 实现下载(打印)功能 有更新!

  |   1 评论   |   1,200 浏览

java+selenium+autoIt 实现下载(打印)功能

selenium是一个开源的自动化测试框架,它可以模拟用户对浏览器的操作,进行自动化的测试。但是,它不仅仅只能用来做测试。

AutoIt 是一个使用类似BASIC脚本语言免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作。它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务。而这是其它语言不可能做到或无可靠方法实现的(例如VBScriptSendKeys)。在这个项目中AutoIt 主要用于在浏览器中点击下载后,保存文件时,对windos弹框进行操作。

因为业务需求,需要把一个html网页转化成PDF,本来准备考虑用iText来对html转为PDF,但是我们已经拥有html的网页了,用iText感觉太麻烦,然后又找了一个第三方html->pdf,结果需要收费等一些其它原因,最终决定采用selenium+chrome+java+autol对网页进行导出PDF。

即使这个是打印成PDF,也可用于下载

环境:springboot v2.1.2 + maven + selenium 3.141.59 + chrome 71.0.3578.98