java并发之ConcurrentLinkedQueue
在并发编程中,我们可能经常需要用到线程安全的队列,JDK提供了两种模式的队列:阻塞队列和非阻塞队列。阻塞队列使用锁实现,非阻塞队列使用CAS实现。ConcurrentLinkedQueue是一个基于链表实现的无界线程安全队列,对于。下面看看JDK是如何使用非阻塞的方式来实现线程安全队列ConcurrentLinkedQueue的。 成员属性 ConcurrentLinkedQueue由head和tail节点组成,节点与节点之间通过next连接,从而来组成一个链表结构的队列。 private t
使用Git Bash向GitHub上传本地项目
第一步:下载Git Bash(https://gitforwindows.org/),安装的过程是一路下一步,就不细说啦; 第二步:打开Git Bash,如下图显示: 第三步:现在让我们先放一放Git Bash,让我们在网页上登陆自己的GitHub账号: 第四步:然后让我们点击New按钮,创建一个仓库(你所需要填写的是第一栏的项目名称、第二栏的 项目描述,当然项目描述可以不写),然后点击Create repository就好了: 第五步:此时让我们返回我们的主页,就可以看到刚刚创建的项目,如果
使用国内镜像给ROS安装提速
大半年没写博客了。最近有幸参与机器人导航研究,在学习ROS相关知识。在安装ROS时使用国外的官方源安装非常慢。这里把使用国内镜像的安装方式做一个记录。 笔者用的是Kinetic版本,操作系统是Ubuntu 16.04 LTS。 第一步要做的就是替换系统默认的源为aliyun镜像源: 编辑/etc/apt/sources.list文件,将里面的内容替换为(替换之前建议先备份原始文件): # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release
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命令行,,感觉没什么意义,这边放一个配置
【转】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
机器学习算法的整体流程(非常易懂)
1、机器学习算法的整体使用步骤如下: (1)从scikitlearn库中调用相应的机器学习算法模块; (2)输入相应的算法参数定义一个新的算法; (3)输入基础训练数据集利用scaler对其进行数据归一化处理 (4)对于归一化的数据集进行机器学习算法的训练fit过程; (5)输入测试数据集对其结果进行预测predict; (6)将预测结果与真实结果进行对比,输出其算法的准确率score(或者混淆矩阵) 2、机器学习的具体流程图如下:
[总集] LOJ「分块」数列分块入门1 – 9(分块)
目录 分块9题 出题人hzw的解析 数列分块入门 1 修改:区间加 查询:单点值查询 代码 分块9题 出题人hzw的解析 (tips.以下代码中IO优化都已省去,想看可以点传送门) 数列分块入门 1 修改:区间加 查询:单点值查询 这是一道经典题目,线段树、树状数组等都可以搞,这里讲讲分块 分块就是将一定长度的一段数打包成块,统一处理的算法 每个块都有自己的信息,自己的标记,统一维护,统一查询 我们可以将每个区间修改或查询拆分成在若干个整块,和头尾两个不完整的块中修改、查询后信息的总和 那此题
网络OSI七层模型以及数据传输过程
网络OSI七层模型 国际标准化组织(ISO)制定了osi七层模型,iso规定了各种各样的协议,并且分了7层 用户层 系统层 应用层 产生数据 表示层 对应用层来的数据进行压缩,解压缩,加密,解密 会话层 数据传输之前建立一个会话,传输过程中维持一个会话,结束终止这个会话 网络层 传输层 标明上层是那些应用程序(流控) 网络层 寻址 数据链路层 起到了承上启下的作用 物理层 定义了一些设备的接口以及传输速率 TCP/IP五层模型 由于在实际使用中表示层和会话层协议比较少,就把应用层和会话层、表示
[Go] golang设置运行的cpu数
package main
import(
"fmt"
"runtime"
)
func main() {
cpuNum:=runtime.NumCPU()
fmt.Println("cpuNum=",cpuNum)
runtime.GOMAXPROCS(cpuNum)
}
【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
【纪中模拟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
MySQL集群读写分离的自定义实现
基于MySQL Router可以实现高可用,读写分离,负载均衡之类的,MySQL Router可以说是非常轻量级的一个中间件了。 看了一下MySQL Router的原理,其实并不复杂,原理也并不难理解,其实就是一个类似于VIP的代理功能,其中一个MySQL Router有两个端口号,分别是对读和写的转发。 至于选择哪个端口号,需要在申请连接的时候自定义选择,换句话说就是在生成连接字符串的时候,要指明是读操作还是写操作,然后由MySQL Router转发到具体的服务器上。 引用这里的话说就是:
TabLayout+ViewPager+Fragment 快速实现标题切换效果
首先呢,这个控件使用起来并不难,算是非常简单的了,不过这个 TabLayout 的 setupWithViewPager 方法有坑,要注意了,具体什么坑,自己踩过才有映像,我这里就不说了,就介绍一下如何使用吧。 在 FragmentOne 中的布局文件里面添加一个 ViewPager 和一个 TabLayout,代码如下: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.a
实验:基于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 '
[BZOJ4899]记忆的轮廓
记忆的轮廓 题目描述 通往贤者之塔的路上,有许多的危机。 我们可以把这个地形看做是一颗树,根节点编号为1,目标节点编号为n,其中1-n的简单路径上,编号依次递增,在[1,n]中,一共有n个节点。我们把编号在[1,n]的叫做正确节点,[n+1,m]的叫做错误节点。一个叶子,如果是正确节点则为正确叶子,否则称为错误叶子。莎缇拉要帮助昴到达贤者之塔,因此现在面临着存档位置设定的问题。 为了让昴成长为英雄,因此一共只有p次存档的机会,其中1和n必须存档。被莎缇拉设置为要存档的节点称为存档位置。当然不能
一行代码设置 DrawerLayout 全屏效果
DrawerLayout 默认使用时,侧拉出来的效果会有一点缩进效果,既然它是缩进,那我们直接反向操作,给它缩进一个负值不就好了嘛,直接看代码: <!-- 第二个视图放抽屉 --> <android.support.design.widget.NavigationView android:id="@+id/navigation_view" android:layout_width="match_parent" android:layout_height="match_parent" andro
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]=
[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\) 会少一
今日推荐
周排行