work

Eclipse下的相对路径

微笑、不失礼 提交于 2019-11-27 07:17:32
Eclipse中启动jvm都是在项目根路径上启动的.比如有个项目名为blog,其完整路径为:D:\work\IDE\workspace\blog.那么这个路径就是jvm的启 动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:\work\IDE\workspace\blog.” 转载于:https://www.cnblogs.com/zlfly/p/4639198.html 来源: https://blog.csdn.net/weixin_30332241/article/details/99546499

python线程基础

我的未来我决定 提交于 2019-11-27 07:05:55
一 基本概念 1 并行和并发 1 并行,parallel 同时做某些事,可以互不干扰的同一时刻做几件事 如高速公路上的车道,同一时刻,可以有多个互不干扰的车运行 在同一时刻,每条车道上可能同时有车辆在跑,是同时发生的概念 2 并发,concurrency 也是同时做某事,但强调的是同一时段做了几件事。 并行是可以解决并发问题的。 2 并发的解决 1 队列,缓冲区 队列:排队就是队列,先进先出,解决了资源使用的问题。 缓冲区:排程的队列,其实就是一个缓冲地带,就是缓冲区 优先队列:对比较重要的事进行及时的处理,此处就是优先队列 2 争抢 只开一个窗口,有可能没秩序,也就是谁挤进去就给谁打饭 挤到窗口的人占据窗口,直到达到饭菜离开,其他人继续争抢,会有一个人占据窗口,可以视为锁定窗口,窗口就不能为其他人提供服务了,这是一种锁机制,抢到资源就上锁,排他性锁,其他人只能等候 争抢也是一种高并发解决方案,但是,不好,因为有人可能长时间抢不到。 3 预处理 一种提前加载用户需要的数据的思路,如预热,预加载等,缓存中常用 缓存的思想就是将数据直接拿到,进行处理。 4 并行 可通过购买更多的服务器,或开多线程,进行实现并行处理,来解决并发问题,这些都是水平扩展, 5 提速 提高单个CPU性能,或者单个服务器安装更多的CPU,但此和多个服务器相比成本较高 6 消息中间件

银行家算法

别说谁变了你拦得住时间么 提交于 2019-11-27 04:24:03
   1 需求分析 1.1 银行家算法的实现思想 允许进程动态地申请资源,系统在每次实施资源分配之前,先计算资源分配的安全性,若此次资源分配安全(即资源分配后,系统能按某种顺序来为每个进程分配其所需的资源,直至最大需求,使每个进程都可以顺利地完成),便将资源分配给进程,否则不分配资源,让进程等待。 1.2 死锁的概念   死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。   银行家算法是避免死锁的一种重要方法。 操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配。当进程在执行中继续申请资源时,先测试该进程已占用的资源数与本次申请的资源数之和是否超过了该进程对资源的最大需求量。若超过则拒绝分配资源,若没有超过则再测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按当前的申请量分配资源,否则也要推迟分配。 1.3 产生死锁的必要条件 ① 互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待

【操作系统】银行家算法

送分小仙女□ 提交于 2019-11-27 04:23:26
  对于计算机中的死锁,我们有四种处理的方法,分别为预防死锁、避免死锁、检测死锁和解除死锁,而今天要说的Dijkstra的银行家算法就是最具有代表性的避免死锁的算法。   银行家算法的名字来源于该算法原本是为银行系统设计的,以确保银行在发放现金贷款时,不会发生不能满足所有客户需要的情况,在OS中可以用它来避免死锁。   为实现银行家算法,每一个新进程在进入系统时,必须申明在运行过程中可能需要每种资源类型的最大单元数目,其数目不应超过系统所拥有的资源总量。当进程请求一组资源时,系统必须首先确定是否有足够的资源分配给该进程。若有,再进一步计算在将这些资源分配给进程后,是否会使系统处于不安全状态。如果不会,才将资源分配给它,否则让进程等待。   首先为实现银行家算法,在系统中必须设置这样四个数据结构:   (1) 可利用资源向量Avaliable。 这是一个含有m个元素的数组,其中每一个元素代表一类可利用的资源数目,其初始值是系统所配置的该类全部可用资源的数目,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态的改变。如果Available[j]=K,则表示系统中现有R j 类资源的最大数目为K 。   (2) 最大需求矩阵Max。 是一个n×m的矩阵,定义了系统中n个进程中的每一个进程对m类资源的最大需求

银行家算法(Banker's Algorithm)

女生的网名这么多〃 提交于 2019-11-27 04:22:52
•Multiple instances. •Each process must a priori claim maximum use. •When a process requests a resource it may have to wait. •When a process gets all its resources it must return them in a finite amount of time. n 为进程的数目, m 为资源类型的数目 •Available: Vector of length m. –If available [j] = k, there are k instances of resource type Rj available.(如果available[j]=k,那么资源Rj有k个实例可用) •Max: n x m matrix. –If Max [i,j] = k, then process Pi may request at most k instances of resource type Rj.(如果Max[i,j]=k,那么进程Pi可以最多请求资源Rj的k个实例) Data Structures for the Banker’s Algorithm (Cont.): •Allocation: n x m matrix. –If

收录国外造船信息-Pursuit of a product work breakdown structure (PWBS)

纵然是瞬间 提交于 2019-11-27 04:05:47
Pursuit of a product work breakdown structure (PWBS) 产品工作分解结构的追击 In 1971, Panel SP-2 was created under the aegis of the Ship Production Committee (SPC) of The Society of Naval Architects and Marine Engineers. Since it was the last of such panels formed during the first phase of the National Shipbuilding Research Program (NSRP), Panel SP-2 was assigned a catchall group of projects and was given the title Outfitting and Production Aids. The SPC was then dominated by people who had experience only in traditional U.S. shipbuilding operations, particularly during World War II. Within eighteen

nexus搭建maven仓库管理

为君一笑 提交于 2019-11-27 03:51:26
Linux搭建nexus仓库 1.安装jdk 1.1 获取安装包,解压到指定目录: 1 tar xf jdk.tar.gz -C /opt/export 1.2 配置环境变量: 1 # vim /etc/profile 2 export JAVA_HOME=/opt/export/jdk 3 export PATH=$JAVA_HOME/bin:$PATH 4 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar 5 export RUN_AS_USER=root # 后边启动nexus需要 6 7 # source /etc/profile 1.3 出现下面结果,说明部署成功 1 # java -version 2 java version "1.7.0_80" 3 Java(TM) SE Runtime Environment (build 1.7.0_80-b15) 4 Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode) 2.安装nexus 2.1下载安装 下载地址: https://www.sonatype.com/download-oss-sonatype https://help

EclipseSVN更新和提交

陌路散爱 提交于 2019-11-27 03:25:55
EclipseSVN更新和提交 阅读钱请先阅读前一篇文章: eclipse安装与SVN插件的安装以及分享和检出 更多资源可关注好男人的微信公众号:“ 菜鸟资源分享 ” 1、上部分结束后,此时我们在Tom_work中修改项目代码,完后提交到服务器端,在重新打开一个eclipse,工作空间选择Jeery_work,完后再Jeery_work点击更新(在点击更新前先将未修改的项目文件导入到eclipse中,完后再Tom_work中执行修改项目文件提交等操作,最后在Jeery_work中执行更新操作),刚刚Tom_work修改的项目代码就已经更新到Jeery_work中了。 Tom_work修改项目代码文件: 右键项目文件——Team——更新: 点击更新后出现如下界面——点击ok,即提交成功。 打开一个eclipse,工作空间选择Jeery_work,此前应该已经将旧项目文件导入好了,所以打开后会有旧的项目文件,如下图: 此时执行更新操作:右键项目文件——Team——更新。 更新后如下图:可见已经和Tom_work项目文件内容一致了。 如果此时Jeery_work增加了一个类文件,此时只需要点击提交,就上传到服务器中了,Tom_work执行更新操作就也获取到了Jeery_work修改后的文件。 Jeery_work点击提交:就将新的项目文件添加到了服务器中。  

【Python与线程】

﹥>﹥吖頭↗ 提交于 2019-11-27 02:57:38
原文: http://106.13.73.98/__/6/ 目录 一、全局解释器锁GIL 二、Python线程模块的选择 三、线程的创建 三、锁机制 四、信号量 五、事件 六、条件 七、定时器 八、线程队列 九、线程池 补充:线程安全 import threading obj = threading.local()# local():可实现,多线程操作某一数据,不会出现数据混乱的情况# 原理:空间换时间 def add(i): obj.n = i print(i, obj.n, threading.current_thread().ident) for i in range(20): th = threading.Thread(target=add, args=(i,)) th.start() 一、全局解释器锁GIL Python代码的执行由Python虚拟机(也叫解释器主循环)来控制。Python在设计之初就考虑到要在主循环中同时只有一个线程在执行。虽然Python解释器中可以“运行”多个线程,但在任意时刻只有一个线程在解释器中运行. 对于Python虚拟机的访问由全局解释器锁(GIL)来控制,正是这个锁保证了同一时刻只有一个线程在运行. 同一时间点,GIL只允许同一个进程中的一个线程访问cpu,即CPython解释器中没有真正的线程并行,只有进程可以实现。故I/O操作多时

FFMPEG命令行处理视频进阶——高阶必读

旧时模样 提交于 2019-11-27 02:57:09
from: https://blog.csdn.net/zhangamxqun/article/details/80295833 FFMPEG拥有强大的视频处理能力,可惜的是有很多人不知道如何使用。本文深入介绍如何用编译好ffmpeg.exe程序处理视频,既有常用的简单的处理,也有一些比较少见的高大上的处理,一定能让你受益匪浅。ffmpeg是一把宝刀,在视频处理上,基本是一刀在手,天下我有。 首先下载编译好的ffmpeg程序,可以去下面的网址, https://ffmpeg.zeranoe.com/builds/# 点击"Donload Build"按钮下载最新编译的版本,解压后可以看到ffmpeg.exe文件用于处理视频,ffplay.exe文件用于播放视频。也可以去ffmpeg的官网http://ffmpeg.org/ 下载源码自己编译(这个工作量比较大)。 打开命令行窗口,使用cd命令行进入到ffmpeg所在的目录,接下来就可以直接输入处理命令了。下面就来介绍各种各样的命令。下面命令行中的输入视频和输出视频的路径必须正确,如果路径不存在会出错的哦。 1、知道了视频流地址如何保存出本地文件: ffmpeg -i rtmp://122.202.129.136:1935/live/ch4 -map 0 d:\work\yyy.mp4 2、知道了流地址,播放视频文件: ffplay