java并发之ConcurrentLinkedQueue

在并发编程中,我们可能经常需要用到线程安全的队列,JDK提供了两种模式的队列:阻塞队列和非阻塞队列。阻塞队列使用锁实现,非阻塞队列使用CAS实现。ConcurrentLinkedQueue是一个基于链表实现的无界线程安全队列,对于。下面看看JDK是如何使用非阻塞的方式来实现线程安全队列ConcurrentLinkedQueue的。 成员属性 ConcurrentLinkedQueue由head和tail节点组成,节点与节点之间通过next连接,从而来组成一个链表结构的队列。 private t
分类: 其他 发布时间: 08-03 20:21 阅读次数: 0

使用Git Bash向GitHub上传本地项目

第一步:下载Git Bash(https://gitforwindows.org/),安装的过程是一路下一步,就不细说啦; 第二步:打开Git Bash,如下图显示: 第三步:现在让我们先放一放Git Bash,让我们在网页上登陆自己的GitHub账号: 第四步:然后让我们点击New按钮,创建一个仓库(你所需要填写的是第一栏的项目名称、第二栏的 项目描述,当然项目描述可以不写),然后点击Create repository就好了: 第五步:此时让我们返回我们的主页,就可以看到刚刚创建的项目,如果
分类: 其他 发布时间: 08-03 20:21 阅读次数: 0

防盗链概念

基础概念 如果你刚刚开发完一个没有防盗链的带有文件下载功能的网站,然后上传几个时下非常热门的软件或电影并在网站内公布下载地址。不用多久就会发现网速出奇地变慢,甚至服务器托管中心的服务员会热情地打电话告诉你的网站流量很大,估计是网站受欢迎起来了,问你是不是该考虑加钱租用带宽更宽但价格更贵的网线了。在这个值得庆祝的时候赶快打开Google Analytics看看有多少人来光顾你的网站了吧,如果发现访客每天才十来个人,很遗憾地告诉你:你的网站资源不幸地被人盗链了。 网站资源被盗链简单来说就是用户在别
分类: 其他 发布时间: 08-03 20:21 阅读次数: 0

使用国内镜像给ROS安装提速

大半年没写博客了。最近有幸参与机器人导航研究,在学习ROS相关知识。在安装ROS时使用国外的官方源安装非常慢。这里把使用国内镜像的安装方式做一个记录。 笔者用的是Kinetic版本,操作系统是Ubuntu 16.04 LTS。 第一步要做的就是替换系统默认的源为aliyun镜像源: 编辑/etc/apt/sources.list文件,将里面的内容替换为(替换之前建议先备份原始文件): # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release
分类: 企业开发 发布时间: 08-03 20:21 阅读次数: 0

eclipse使用git命令行

eclipse使用git的命令行很简单,无需额外配置,类似idea的方式 在eclipse的preferences中搜索terminal,可以看见git的配置(之前计算机上装过git),就类似于idea的terminal配置一样 之后,去打开eclipse的terminal,windows->show view中选择terminal,显示terminal(或 Ctrl + Shift + Alt + T) 之前百度搜的一堆配置console方式打开git命令行,,感觉没什么意义,这边放一个配置
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

【转】DAY7附录1

来自百度贴吧 首先,我们建立 群 的概念。 非空集合 G 上的二元运算 ∘ : G × G → G,如果,满足: 结合律:对于 任意 a, b, c ∈ G,有 (a ∘ b) ∘ c = a ∘ (b ∘ c); 则称 (G, ∘) 为 半群,如果,再满足: 有幺元:存在 e ∈ G ,对于 任意 a ∈ G 都有 e ∘ a = a ∘ e = a ①;(e 称为幺元) 则称 (G, ∘) 为 幺半群,如果,再满足: 可逆:对于 任意 a ∈ G 存在 b ∈ G 使得 a ∘ b = b
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

机器学习算法的整体流程(非常易懂)

1、机器学习算法的整体使用步骤如下: (1)从scikitlearn库中调用相应的机器学习算法模块; (2)输入相应的算法参数定义一个新的算法; (3)输入基础训练数据集利用scaler对其进行数据归一化处理 (4)对于归一化的数据集进行机器学习算法的训练fit过程; (5)输入测试数据集对其结果进行预测predict; (6)将预测结果与真实结果进行对比,输出其算法的准确率score(或者混淆矩阵) 2、机器学习的具体流程图如下:
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

[总集] LOJ「分块」数列分块入门1 – 9(分块)

目录 分块9题 出题人hzw的解析 数列分块入门 1 修改:区间加 查询:单点值查询 代码 分块9题 出题人hzw的解析 (tips.以下代码中IO优化都已省去,想看可以点传送门) 数列分块入门 1 修改:区间加 查询:单点值查询 这是一道经典题目,线段树、树状数组等都可以搞,这里讲讲分块 分块就是将一定长度的一段数打包成块,统一处理的算法 每个块都有自己的信息,自己的标记,统一维护,统一查询 我们可以将每个区间修改或查询拆分成在若干个整块,和头尾两个不完整的块中修改、查询后信息的总和 那此题
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

网络OSI七层模型以及数据传输过程

网络OSI七层模型 国际标准化组织(ISO)制定了osi七层模型,iso规定了各种各样的协议,并且分了7层 用户层 系统层 应用层 产生数据 表示层 对应用层来的数据进行压缩,解压缩,加密,解密 会话层 数据传输之前建立一个会话,传输过程中维持一个会话,结束终止这个会话 网络层 传输层 标明上层是那些应用程序(流控) 网络层 寻址 数据链路层 起到了承上启下的作用 物理层 定义了一些设备的接口以及传输速率 TCP/IP五层模型 由于在实际使用中表示层和会话层协议比较少,就把应用层和会话层、表示
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

[Go] golang设置运行的cpu数

package main import( "fmt" "runtime" ) func main() { cpuNum:=runtime.NumCPU() fmt.Println("cpuNum=",cpuNum) runtime.GOMAXPROCS(cpuNum) }   
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

【POJ - 1064】Cable master(二分)

Cable master Descriptions 输入2个数 N K n条绳子 要分成大于等于k段 求每段最长多长呢?并且每段不能小于1cm 必须以厘米精度写入数字,小数点后正好是两位数。 如果无法切割所请求的每个长度至少为1厘米的件数,则输出文件必须包含单个数字“0.00”(不带引号)。 多组文件输入 Sample Input 4 11 8.02 7.43 4.57 5.39 Sample Output 2.00 题目链接 https://vjudge.net/problem/PO
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

【纪中模拟2019.08.03】【JZOJ1308】取数游戏

题目链接 题意:   N个正整数围成一圈,规则如下: •两个玩家轮流取数; •先手玩家取任意一个数x; •从第二步开始当前玩家只能取x(上一玩家取的数)相邻的数; •直到取完所有的数,游戏结束; •取得较多奇数的玩家获胜。   保证双方都采取最优策略的同时,计算先手有多少种取法获胜。   $1\le N\le 10^2,\quad 1\le x\le 10^3$ 实现(100分):   因为笔者不会SG函数,所以如果有绕弯子的描述请谅解。   分析博弈过程,有$2^n$种形势,按博弈写程序会T
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

MySQL集群读写分离的自定义实现

基于MySQL Router可以实现高可用,读写分离,负载均衡之类的,MySQL Router可以说是非常轻量级的一个中间件了。 看了一下MySQL Router的原理,其实并不复杂,原理也并不难理解,其实就是一个类似于VIP的代理功能,其中一个MySQL Router有两个端口号,分别是对读和写的转发。 至于选择哪个端口号,需要在申请连接的时候自定义选择,换句话说就是在生成连接字符串的时候,要指明是读操作还是写操作,然后由MySQL Router转发到具体的服务器上。 引用这里的话说就是:
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

TabLayout+ViewPager+Fragment 快速实现标题切换效果

首先呢,这个控件使用起来并不难,算是非常简单的了,不过这个 TabLayout 的 setupWithViewPager 方法有坑,要注意了,具体什么坑,自己踩过才有映像,我这里就不说了,就介绍一下如何使用吧。 在 FragmentOne 中的布局文件里面添加一个 ViewPager 和一个 TabLayout,代码如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.a
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

实验:基于http的yum源

实验:基于http的yum源 selinux,firewalld已经关闭‘,系统为CentOS7 一、VMware插入两张光盘,6和7 二、手动触发系统的扫描机制 [root@centos7 html]# echo ' - - - ' > /sys/class/scsi_host/host0/scan [root@centos7 html]# echo ' - - - ' > /sys/class/scsi_host/host1/scan [root@centos7 html]# echo '
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

[BZOJ4899]记忆的轮廓

记忆的轮廓 题目描述 通往贤者之塔的路上,有许多的危机。 我们可以把这个地形看做是一颗树,根节点编号为1,目标节点编号为n,其中1-n的简单路径上,编号依次递增,在[1,n]中,一共有n个节点。我们把编号在[1,n]的叫做正确节点,[n+1,m]的叫做错误节点。一个叶子,如果是正确节点则为正确叶子,否则称为错误叶子。莎缇拉要帮助昴到达贤者之塔,因此现在面临着存档位置设定的问题。 为了让昴成长为英雄,因此一共只有p次存档的机会,其中1和n必须存档。被莎缇拉设置为要存档的节点称为存档位置。当然不能
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

一行代码设置 DrawerLayout 全屏效果

DrawerLayout 默认使用时,侧拉出来的效果会有一点缩进效果,既然它是缩进,那我们直接反向操作,给它缩进一个负值不就好了嘛,直接看代码: <!-- 第二个视图放抽屉 --> <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:layout_width="match_parent" android:layout_height="match_parent" andro
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

AcWing 230. 排列计数 水题(组合数+错排)打卡

题目:https://www.acwing.com/problem/content/232/ #include<bits/stdc++.h> #define ll long long #define mod 1000000007 using namespace std; const int maxn = 1000005; ll dp[maxn],inv[maxn],fac[maxn],inv_fac[maxn]; void init() { inv[0]=inv[1]=
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

lodop打印设计

<template> <div class="dashboard-container"> <form id="form1"> <table border="1" width="300" id="tb01" bgcolor="#CCFFCC" style="border:solid 1px black;border-collapse:collapse"><tr><td width="133" id="mtb001"> <font face="黑体" color="
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0

[POI2014]RAJ(最短路,拓扑排序)

对于一个点 \(x\) 如何求答案? 由于这个图是个有向无环图,可以先拓扑排序一遍,求出每个点的拓扑序,从起点到它的最长路 \(d2\),从它到终点的最长路 \(d1\)。(我写代码是这么写的,注意顺序) 把拓扑序比小 \(x\) 的点的点集叫 \(A\),大的叫 \(B\)。答案就是 \(\max\limits{u\in A,v\in B}(d2_u+d1_v+w_{(u,v)})\)。 发现当 \(x\) 的拓扑序变大 \(1\) 时,集合 \(A\) 会多一个数,集合 \(B\) 会少一
分类: 其他 发布时间: 08-03 20:04 阅读次数: 0