每日一问:谈谈 volatile 关键字

这是 wanAndroid 每日一问中的一道题,下面我们来尝试解答一下。 讲讲并发专题 volatile,synchronize,CAS,happens before, lost wake up 为了本系列的「短平快」,今天我们就来第一个主角:volatile。 保证内存可见性 前面我们讲到:Java 内存模型分为了主内存和工作内存两部分,其规定程序所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存中保存了该线程使用到的变量的主内存副本拷贝,线程对变量的所有操作(赋值、读取
分类: 其他 发布时间: 06-20 21:19 阅读次数: 0

面试官:聊聊你对分布式锁技术方案的理解

前言 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题。 第一步,自身的业务场景: 在我日常做的项目中,目前涉及了以下这些业务场景: 场景一:比如分配任务场景。在这个场景中,由于是公司的业务后台系统,主要是用于审核人员的审核工作,并发量并不是很高,而且任务的分配规则设计成了通过审核人员每次主动的请求拉取,然后服务端从任务池中随机的选取任务进行分配。这个场景看到这里你会觉得比较单一,但是实际的分配过程中,由于涉及到了
分类: 其他 发布时间: 06-20 21:19 阅读次数: 0

21 ~ express ~ 前台内容分类展示

一,前台 , views/main/index.html ,通过get传送给后台 思路 : 将栏目ID 传递给后台,后台根据 栏目的ID 返回相应的数据 {% if category == '' %} <li class="active"><a href="/">首页 <span class="sr-only">(current)</span></a></li> {% else %} <li><a href="/">首页 <span class="sr-only">(current)</spa
分类: 其他 发布时间: 06-20 21:19 阅读次数: 0

使用 HBuilderX 打包 app

目前在做 网站的 app ,是使用 vue 框架写的,做完了web 端,需要打包成 app ,放到网上供用户下载,但是本人以前没有打包过app,在网上找了一些资料,也问了一下同事,居然成功了,现在将整个打包过程记录下来,如果有其他人需要类似的需求,可以参考如下: 1. 如果你使用的 开发工具不是 HBuilderX ,那需要先下载这个软件(如果使用的编辑器是这个软件,就不需要下载了),下载地址如下: 2. 打开 HBuilderX ,选中菜单中的 :文件--->新建--->项目 3. 选择项目
分类: 其他 发布时间: 06-20 21:19 阅读次数: 0

java复制对象,复制对象属性,只可复制两个对象想同的属性名。也可自定义只复制需要的属性。

注意:使用时copy()方法只会复制相同的属性。常用的copy()方法。以下为封装的工具和使用方式。 1.封装类 import java.util.Map; import java.util.WeakHashMap; import org.springframework.cglib.beans.BeanCopier; import org.springframework.cglib.core.Converter; public class BeanCopyUtils { // 使用WeakHa
分类: 其他 发布时间: 06-20 21:19 阅读次数: 0

systemd-让ss晚点启动

不知从什么时候开始,发现开机后ss总没有成功启动,每次开机后总要restart一下ss-libev的service才能上谷歌。 今天解决一下: 查看一下unit cat /usr/lib/systemd/system/[email protected] ```ini [Unit] Description=***-Libev Client Service After=network-online.target [Service] Type=simple User=nobody
分类: 其他 发布时间: 06-20 21:19 阅读次数: 0

NFA和DFA的区别

NFA DFA 初始状态 不唯一 唯一 弧上的标记 字(单字符字/ε) 字符(串) 转换关系 非确定 确定 对于每个NFA M都存在一个DFA M' 使得 L(M) = L(M')
分类: 其他 发布时间: 06-20 21:19 阅读次数: 0

生成器初识,推导式,

1.生成器初始 生成器本身就是迭代器.python社区生成器与迭代器是一种,生成器与迭代器的唯一区别 :生成器是我们自己用Python代码构建的 2.生成器的产生方式 生成器函数 ret =next()时,打印ret时一直打印的是ret通过next接收到的yield的值,只执行一次next, ret = (),打印next(ret)时,打印出的是next这个操作,相当于进行很多次的next 注意:等号是赋值,等号右边的函数操作不再执行 之前接触的函数: # def func(): #
分类: 其他 发布时间: 06-20 21:19 阅读次数: 0

微服务之架构技术选型与设计

本文主要介绍了架构技术选型与设计-微服务选型,Spring cloud 实现采用的技术,希望对您的学习有所帮助。架构技术选型与设计-DUBBODubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点(阿里巴巴现在使用架构为HSF)。 于2012-10-24最后版本2.5.3成为最后一版本,由当当接手维护,命名为dubbox;2017年突然继续dubbo进行维护,最后更新版
分类: 编程语言 发布时间: 06-20 21:15 阅读次数: 0

人工智能不断发展,或将拥有人类思维,其危险也应警惕

  人类已经出现在地球上超过100万年,人类文明的出现已经超过五千年。正是在这样一个长期的稳定和环境中,人类才进化并创造了文明。那么,人类文明到今天是否有可能在瞬间遭到破坏?   事实上,这种情况一直存在。在过去,人类无法与自然作斗争。如果一颗直径超过5公里的小行星撞击地球,它很容易摧毁人类甚至摧毁大部分地球生物。但是,如果在50光年内太阳系空间发生超新星爆炸,其伽马射线爆发会破坏地球生物。幸运的是,由于人类没有看到这样的事件,我们可以继续发展到今天。   小行星   事实上,直到今天,这些太
分类: 其他 发布时间: 06-20 21:05 阅读次数: 0

人工智能比医生更擅长诊断肺癌吗

  一项新的研究证实,谷歌和伊利诺斯州西北大学医学中心等医学中心的研究人员,建立了精确检测微小肺部肿瘤的人工智能驱动系统。   这与我们之前在《健康周刊》上报道的健康科技领域的其他创新是一脉相承的。   近期发表在《自然医学》杂志上的研究显示,谷歌及其合作伙伴通过深度学习和超过42,290个肺部CT,教会系统算法如何判断一个人是否患有肺癌。   这些扫描结果来自美国国立卫生研究院(NIH)最近的临床试验,涉及15000多名患者。   研究结果令人难以置信。只看一张扫描图,谷歌人工智能系统诊断肺
分类: 其他 发布时间: 06-20 21:05 阅读次数: 0

2019计蒜之道复赛 A 线段树求最长升子序列方案数

2019计蒜之道复赛 A 线段树求最长升子序列方案数 题意:给定长度为 n 的数列 a,显然这个数列有很多最长上升子序列,我们等概率地取出一个最长上升子序列,求每个数被选中的概率,对 998244353 取模。 链接:https://nanti.jisuanke.com/t/39611 题外话:勉强混了个前400拿T恤,中间麻将题不知道为什么常数奇大无比调了好久,导致比赛时候这个题没做出来。看了题解发现是个 sb题 简单题。我真的是弱啊。 思路:会用线段树求最长上升子序列就会这个了,思路是从左
分类: 其他 发布时间: 06-20 21:03 阅读次数: 0

卷积神经网络(基础知识回顾)-第七讲

从上篇博客中,我们可以了解搭建卷积神经网络的基础步骤 数据输入层/ Input layer   • 卷积计算层/ CONV layer   • ReLU激励层 / ReLU layer   • 池化层 / Pooling layer   • 全连接层 / FC layer 1.数据输入层 该层要做的处理主要是对原始图像数据进行预处理,其中包括:   • 去均值:把输入数据各个维度都中心化为0,如下图所示,其目的就是把样本的中心拉回到坐标系原点上。   • 归一化:幅度归一化到同样的范围,如下所
分类: 其他 发布时间: 06-20 21:03 阅读次数: 0

Bootstrap 控制台示例

1.打开https://getbootstrap.com/docs/4.3/examples/ 2.选择Dashboard 3.右键查看源代码,另存为 4.通过源代码界面下载JS和CSS 5.修改绝对路径为相对路径 6.成功截图
分类: 其他 发布时间: 06-20 21:03 阅读次数: 0

hello_cnblogs

  博客园你好!
分类: 其他 发布时间: 06-20 21:03 阅读次数: 0

回溯之子集树和排列树

  再总结下回溯法,回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。基本思想:在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则逐层向其祖先结点回溯。若用回溯法求问题的所有解时,要回溯到根,且根结点
分类: 其他 发布时间: 06-20 21:03 阅读次数: 0

ConcurrentModificationException错误的一次解决经历

测试环境上有时调用满减接口会抛错,通常是出现在店铺比较多的时候. 看了一下错误日志,提示我们是ConcurrentModificationException错误.这个错误很明显,是ArrayList在迭代的时候同时对其进行了修改时抛出的异常. 看了一下代码.大致如下: List a = Lists.newArrayList(); b.stream().foreach{   .......   if (true){      a.add(c);   }   for(A a: a){     a.
分类: 其他 发布时间: 06-20 21:03 阅读次数: 0

生成器以及内置函数

生成器的初始 生成器构建方式 通过生成器函数(自己写的函数) 通过生成器推导式 通过python内置的函数或者模块提供(python提供的生成器函数) def func(): print(111) return 2 ret = func() print(ret) 执行此函数,遇到return结束函数。 将数字2返回给ret。 def func(): print(111) print(111) print(111) print(111) print(111) print(111) yield 2
分类: 其他 发布时间: 06-20 21:03 阅读次数: 0

VS2019无法安装Android SDK 28的问题

在一台新电脑上安装VS2019,新建Xamarin.Android项目,反复提示要安装Android SDK 28.0.3,在弹出的窗口里点击接受协议,却无法安装SDK。 直接打开Android SDK管理器,总是提示offline,没法安装任何东西。 究竟怎么回事呢?全新安装的Win10和VS2019,准备好好学习一下新知识,第一步就扑街了。 百度得知有人遇到了同样的问题,但是没有找到答案。 我的旧电脑上面还有可以正常工作的VS2017,打开Android SDK管理器看一下,可以安装SDK
分类: 其他 发布时间: 06-20 21:03 阅读次数: 0

leetcode精选100

leetcode精选100题 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 class Solution: def twoSum1(self, nums, target): """ :type nums: List[int] :type target: int :r
分类: 其他 发布时间: 06-20 21:03 阅读次数: 0