next

win7安装使用docker

孤者浪人 提交于 2020-08-13 00:01:19
后知后觉的学习了下docker入门,还有一些问题和不解地方,留待以后慢慢琢磨。 一、操作系统:windows7专业版;docker版本:19.03;JDK版本:1.8. 二、安装docker: 1、docker好像没有直接支持win7的版本,看网上的文章说要下载docker-toolbox,于是去网站: https://github.com/docker/toolbox/releases 下载安装文件。 2、安装docker-toolbox,没有什么好说的,一路next就好。 本机之前没有安装git,效果更好;否则在这里不要勾选“Git for windows”。而且每次运行的时候,还需要选择Git的bash.exe文件。 另外在最后的安装过程里,会安装Oracle VM VirtualBox,这个最好也安装上,电脑上不差那点空间。我第一次安装的时候,看到oralce开头直接忽视,导致后边有问题,又卸载重新安装了一遍。 3、运行docker。安装成功后,桌面上出现了3个快捷图标: 双击或以管理员身份运行这个“Docker Quickstart Terminal”,出现下面这样的工作界面: 这里可以输入任何docker命令,比如 docker version。 4、运行第一个docker镜像(对于镜像,容器,仓库等概念不做详细解释了): docker run hello-world

进程、线程基础知识全家桶,30 张图一套带走

强颜欢笑 提交于 2020-08-12 23:03:41
前言 先来看看一则小故事 我们写好的一行行代码,为了让其工作起来,我们还得把它送进城( 进程 )里,那既然进了城里,那肯定不能胡作非为了。 城里人有城里人的规矩,城中有个专门管辖你们的城管( 操作系统 ),人家让你休息就休息,让你工作就工作,毕竟摊位不多,每个人都要占这个摊位来工作,城里要工作的人多着去了。 所以城管为了公平起见,它使用一种策略( 调度 )方式,给每个人一个固定的工作时间( 时间片 ),时间到了就会通知你去休息而换另外一个人上场工作。 另外,在休息时候你也不能偷懒,要记住工作到哪了,不然下次到你工作了,你忘记工作到哪了,那还怎么继续? 有的人,可能还进入了县城( 线程 )工作,这里相对轻松一些,在休息的时候,要记住的东西相对较少,而且还能共享城里的资源。 “哎哟,难道本文内容是进程和线程?” 可以,聪明的你猜出来了,也不枉费我瞎编乱造的故事了。 进程和线程对于写代码的我们,真的天天见、日日见了,但见的多不代表你就熟悉它们,比如简单问你一句,你知道它们的工作原理和区别吗? 不知道没关系,今天就要跟大家讨论 操作系统的进程和线程 。 提纲 正文 进程 我们编写的代码只是一个存储在硬盘的静态文件,通过编译后就会生成二进制可执行文件,当我们运行这个可执行文件后,它会被装载到内存中,接着 CPU 会执行程序中的每一条指令,那么这个 运行中的程序,就被称为「进程」 。

图解Java数据结构之环形链表

这一生的挚爱 提交于 2020-08-12 20:44:56
本篇文章介绍数据结构中的环形链表。 介绍 环形链表,类似于单链表,也是一种链式存储结构,环形链表由单链表演化过来。单链表的最后一个结点的链域指向NULL,而环形链表的建立,不要专门的头结点,让最后一个结点的链域指向链表结点。 简单点说链表首位相连,组成环状数据结构。如下图结构: 而在环形链表中,最为著名的即是约瑟夫环问题。 约瑟夫环问题 问题介绍: 设编号为1、2、3、... 、n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列。依次类推,直到所有人出列为止,由此产生一个出队编号的序列。 我们可以举个例子来分析一下: 假设一共有5个人,即n = 5;从第一个人开始报数,即k = 1;数到2的人出列,即m = 2。 示意图如下: 出队列的顺序即为:2 -> 4 -> 1 -> 5 -> 3 那么我们首先得构建出一个单向的环形链表。 实现分析: 先创建第一个节点,让first指向该节点,并形成环状 每创建一个新的节点就将该节点加入到已有的环形链表中 分析完毕,我们用代码实现一下: //创建一个环形的单向链表 class CircleSingleLinkedList { // 创建一个first节点,当前没有编号 private Boy first = null; // 添加节点,构建成一个环形链表

详解图的各种令人心慌的概念和四种图的存储结构(整理到吐)

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-12 19:51:17
写在前面 :博主是一位普普通通的19届二本大学生,平时最大的爱好就是听听歌,逛逛B站。博主很喜欢的一句话 花开堪折直须折,莫待无花空折枝 :博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事,做自己以后不会留有遗憾的事,做自己觉得有意义的事,不浪费这大好的青春年华。博主写博客目的是记录所学到的知识并方便自己复习,在记录知识的同时获得部分浏览量,得到更多人的认可,满足小小的成就感,同时在写博客的途中结交更多志同道合的朋友,让自己在技术的路上并不孤单。 目录 : 1.图的基本概念 无向图有向图 完全有向图完全无向图 弧头和弧尾 入度和出度 (V1,V2) 和 <V1,V2> 集合 VR 的含义 路径和回路 权和网的含义 稀疏图和稠密图 连通图和强连通图 生成树生成森林 极大连通图和极小连通图 2.图的顺序存储结构(邻接矩阵) 3.图的邻接表存储结构 4.图的十字链表存储结构 1.图的基本概念 1.1无向图有向图 1.无向图:如果任意两个顶点之间的边都是无向边,那么该图称为无向图 2.有向图:如果任意两个顶点之间的边都是有向边,那么该图称为有向图 无向图: 有向图: 1.2完全有向图完全无向图 完全图:若图中各个顶点都与除自身外的其他顶点有关系,这样的无向图称为完全图,完全图分为完全有向图和完全无向图 完全无向图: 完全有向图: 在n个顶点的无向完全图中,有n(n-1)

Docker for windows 安装教程

☆樱花仙子☆ 提交于 2020-08-12 18:38:56
@ TOC Doccker 简介   Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。   Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。   Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。 Docker 安装 win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址: http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 安装比较简单,双击运行,点下一步即可,可以勾选自己需要的组件: docker toolbox 是一个工具集,它主要包含以下一些内容: Docker CLI - 客户端,用来运行 docker 引擎创建镜像和容器。 Docker Machine - 可以让你在 Windows 的命令行中运行 docker 引擎命令。 Docker Compose -

用Hibernate Tools生成Hibernate Mapping映射文件

﹥>﹥吖頭↗ 提交于 2020-08-12 18:36:53
用Hibernate Tools生成Hibernate Mapping映射文件 Eclipse中要集成安装Hibernate Tools组件 如果没有,请查看: Eclipse juno 中安装 JBoss Tools,集成Hibernate 一.确定环境: 1.Maven3.0.5 2.Eclipse Juno,集成Jboss/Hibernate Tools 3.Oracle10g 4.Hibernate3.6.5.Final 5.JDK1.7.0_11 二.打开Hibernate Perspective视图层 在 Eclipse 中打开“Hibernate Perspective“。 选择“Windows” >> “Open Perspective” >> “Others…” , 选择 “Hibernate“。 三.新建Hibernate Configuration 配置 1.在Hibernate Perspective中, 右键,选 “Add Configuration…”,弹出对话框 2.在 “Project”区域, 单击 “Browse..” 选择你自己的项目。 3.在 “Database Connection” 区域, 单击 “New..”创建你自己的数据库设定。 4.弹出Connection Profile中选Oracle ,并填写“Name”后,Next 5

新司机的致胜法宝,使用ApexSql Log2018快速恢复数据库被删除的数据

喜你入骨 提交于 2020-08-12 17:55:31
作为开发人员,误操作数据delete、update、insert是最正常不过的了,比如: 删除忘记加where条件; 查询为了图方便按了F5,但是数据里面夹杂着delete语句。 不管是打着后发动机声音噪音过大,缸筒活塞间隙过大,做过全身划痕处理; 还是喷过全身漆,对于有经验的老司机来说,这些都是不是事(还原一下数据库日志恢复就OK), 但是对于驾驶经验不足的人来说就难以驾驶了,只能重新换车(请教DBA:数据库管理员)。 但是并不是所有公司都有DBA,或者认识的朋友是DBA,那只能靠自己了,怎么办呢? 不慌,看法宝! 微软SQL服务器的增值软件工具供应商提供了ApexSQL Log工具(支持SQL Server2005/2008/2012),只要我不付钱,就不是嫖客咯,我都给你们整理好了, ApexSql Log 2018免安装版下载地址(免费的哦) 百度网盘提取地址: 链接:https://pan.baidu.com/s/1h23f9cQuTQ_-r__yrfueSA 提取码:XZ66 官网地址:https://www.apexsql.com/Download.aspx(比较慢); 这是基于数据库日志的可视化恢复数据的工具,里面有很多功能,我们着重说数据恢复功能; 首先下载软件,使用我上面分享的地址下载或者百度查询下载也可以; 使用教程(以sql server2008为例)

自动AC机

妖精的绣舞 提交于 2020-08-12 15:33:19
有更新 注意不是AC自动机! AC自动机是种高级算法,我所介绍的是种作弊方法。 这是一种非常玄学的东西,是用Pascal语言写的用来卡评测机的东西,卡软件BUG,以此来作弊使自己“AC”。 不过只能卡Cena,其他的力有未逮。 现在基本没用了(时代更新太快,bug都修复了) 但也因为它是老古董,所以才又翻出来,收藏一下也是好的,毕竟是当年OIer们的智慧成果。 如果要实际应用的话,注意改一下 这是我校大神,转载注明出处 www.cnblogs.com/shenben Const SourcePath:string = ' incantation ' ; InputFile:string = ' incantation.in ' ; OutputFile:string = ' incantation.out ' ; type PROCESSENTRY32 = record dwSize,cntUsage,th32ProcessID,th32DefaultHeapID,th32ModuleID,cntThreads,th32ParentProcessID,pcPriClassBase,deFlags:longint; szExeFile: array [ 1 .. 260 ] of char; end ; MODULEENTRY32 = record dwSize

“既生 ExecutorService, 何生 CompletionService?”

笑着哭i 提交于 2020-08-12 14:34:09
  你有一个思想,我有一个思想,我们交换后,一个人就有两个思想   If you can NOT explain it simply, you do NOT understand it well enough   现陆续将Demo代码和技术文章整理在一起 Github实践精选 ,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star🌟      前言   在 我会手动创建线程,为什么要使用线程池? 中详细的介绍了 ExecutorService,可以将整块任务拆分做简单的并行处理;   在 不会用Java Future,我怀疑你泡茶没我快 中又详细的介绍了 Future 的使用,填补了 Runnable 不能获取线程执行结果的空缺   将二者结合起来使用看似要一招吃天下了(Java有并发,并发之大,一口吃不下), but ~~ 是我太天真      ExecutorService VS CompletionService   假设我们有 4 个任务(A, B, C, D)用来执行复杂的计算,每个任务的执行时间随着输入参数的不同而不同,如果将任务提交到 ExecutorService, 相信你已经可以“信手拈来”   ExecutorService executorService = Executors.newFixedThreadPool(4);List futures =

4.1 ConditionObject

喜夏-厌秋 提交于 2020-08-12 14:18:57
在这个类里AbstractQueuedSynchronizer public class ConditionObject implements Condition, java.io.Serializable {} 属性 就这俩没有了 /** First node of condition queue. */ private transient Node firstWaiter; /** Last node of condition queue. */ private transient Node lastWaiter; newCondition private final Condition notFull = putLock.newCondition(); public Condition newCondition() { return sync.newCondition(); } final ConditionObject newCondition() { return new ConditionObject(); } //毛也没有啊 public ConditionObject() { } public boolean offer(E e, long timeout, TimeUnit unit){ ... //在这里有这么一句 当容量到达上限 就调用了await while