技术文章


Git暂存本地代码,强制获取远程最新代码

眉间皱痕 提交于 2020-01-28 07:21:01
一:git stash // 把本地修改的代码压到git栈中去 二:git pull // 本地代码压栈之后,pull远程代码会完全覆盖本地代码 三:git stash list // 可以查看栈中的信息 四:git stash clear // 如果确定舍弃本地代码,完全使用远程代码,可以把栈清空 五:git stash pop // 如果本地修改由于冲突拉不下来远程代码,只是先把远程代码拉下来,再去合并本地代码,可以先拉下来再git stash pop手动合并代码解决冲突 总结: ①:完全放弃本地修改,只想回到远程的代码修改状态 使用:git stash -> git pull -> git stash clear ②:由于本地的修改,导致远程代码拉不下来,不想删本地代码的修改记录,仍想获取远程的修改,可以: 使用:git stash -> git pull -> git stash pop(手动解决冲突) 转载注明出处: https://www.cnblogs.com/darope/p/11494953.html 来源: https://www.cnblogs.com/darope/p/11494953.html

带参数运行线程的方法

心已入冬 提交于 2020-01-28 07:20:35
在多线程或单线程任务中,让线程带传入参数一直是个麻烦的问题,通常有种方法就是以类,对像的变量来传参数,这种方法理解上很简单不过在某些场合使用很麻烦,这里就不介绍了,我们主要介绍一种.NET2.0中新增加的带参数运行线程的方法,示例程序如下: ParameterizedThreadStart ParStart = new ParameterizedThreadStart(ThreadMethod); Thread myThread = new Thread(ParStart); object o = "hello"; myThread.Start(o); ThreadMethod如下: public void ThreadMethod(object ParObject) { // 程序代码 } 如果是多参数的话可以以数组或动态列表等方式装相入 object,然后使用时拆箱即可 这样是不是简单多了哈,,, ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- [转]个人认为,还是为线程创建一个单独的类

张一山倒下了,惊醒了一大批程序员!

左心房为你撑大大i 提交于 2020-01-28 07:19:34
01 1992年出生的当红实力小生张一山,凭借《余罪》等剧一度蹿红,成为当今娱乐圈中炙手可热的男明星之一。 事业正当红的他却在一段采访中表示,由于身体患有疾病,而且是多年的慢性病,有可能告别演艺圈,并表示今后不再参加真人秀节目。 关于自己的健康问题,张一山无奈的向大众坦承:自己因为拍戏原因饮食不规律,很早就得了胃病。 健康出现问题,却不能及时地治疗休养。即使病了,依然还在继续工作。 张一山一个工作接着一个工作的转换,作息时间完全被打乱, 多年的胃病最终变成了胆囊息肉,他曾在节目录制现场因胃病突发被紧急送往医院。 去年,张一山一大早去医院抽血化验,之后又要连赶两个场地去拍戏,收工后,还要赶到100多公里外的场地去为明天拍摄做准备。 病了,根本没有时间去治疗! 如此卖力疯狂的工作的代价是身体素质的直线下降。 不少程序员看了之后,纷纷表示虽然他们与张一山所从事的职业截然不同,一个是光鲜亮丽的演艺事业,一个是埋头苦作的码农,可是工作的强度、对身体和健康的透支却是极其的相似。 02 近些年,关于码农“过劳死”、“猝死”的新闻报道并不鲜见,在996工作机制下的程序员乃至许多IT人,经常在高压下长时间工作,最后酿成悲剧。 2012年9月4日上午,西山居(金山公司旗下游戏工作室)北京运营中心一名员工在办公室猝死,年仅25岁。 2014年7月26日,华为海思无线芯片开发部部长王劲突然昏迷,抢救无效

深入理解Java线程池:ScheduledThreadPoolExecutor

风流意气都作罢 提交于 2020-01-28 07:17:17
介绍 自JDK1.5开始,JDK提供了ScheduledThreadPoolExecutor类来支持周期性任务的调度。在这之前的实现需要依靠Timer和TimerTask或者其它第三方工具来完成。但Timer有不少的缺陷: Timer是单线程模式; 如果在执行任务期间某个TimerTask耗时较久,那么就会影响其它任务的调度; Timer的任务调度是基于绝对时间的,对系统时间敏感; Timer不会捕获执行TimerTask时所抛出的异常,由于Timer是单线程,所以一旦出现异常,则线程就会终止,其他任务也得不到执行。 ScheduledThreadPoolExecutor继承ThreadPoolExecutor来重用线程池的功能,它的实现方式如下: 将任务封装成ScheduledFutureTask对象,ScheduledFutureTask基于相对时间,不受系统时间的改变所影响; ScheduledFutureTask实现了 java.lang.Comparable 接口和 java.util.concurrent.Delayed 接口,所以有两个重要的方法:compareTo和getDelay。compareTo方法用于比较任务之间的优先级关系,如果距离下次执行的时间间隔较短,则优先级高;getDelay方法用于返回距离下次任务执行时间的时间间隔;

星载覆球波束阵列天线

笑着哭i 提交于 2020-01-28 07:17:12
简介 上一篇博客我建立了一个螺旋线的的阵列,这次我在螺旋线阵列的基础上进行波束赋形,得到一个覆球波束。星载卫星导航阵列天线采用的是覆球波束,这是因为地球表面是球面,用于弥补卫星到地球表面各点的衰减。 星载覆球波束 星载卫星导航阵列天线采用覆球波束,这是由于地球表面是个球面,从卫星到地球表面各点的距离和衰减都不尽相同,为了弥补卫星到地球表面各点的衰减,星载阵列天线采用特殊的波束赋形,即覆球波束。波束沿卫星和地心的连线旋转对称,波束的正前方凹陷,这样可以和地球表面相吻合,波束的最大值位于卫星与地球相切的方向上。 覆球波束方向图求解 如上图所示,O点为地球球心,A点为卫星,B点为地球表面能看见卫星A的其中任意一点。其中H为卫星距离地球表面的高度,R为地球的半径,θ为∠BAO,OC与AB的延长线相垂直。则有,B点到卫星的距离r=AB=AC-BC,其中AC=AO sin(θ), BC= (BO 2 -CO 2 ) 0.5 ,BO=R,CO = AO cos(θ)。综上,r=AO sin(θ)- {(BO 2 -AO cos(θ) 2 )} 0.5 。此外,自由空间的损耗公式为:Lbf=32.5+20lgF+20lgD,F为频率(MHz),D为距离(km),Lbf为自由空间损耗(dB)。 python绘制覆球波束方向图 代码如下: import numpy as np import

堆栈和托管堆以及装箱和拆箱的理解

一个人想着一个人 提交于 2020-01-28 07:16:56
C#中的类型都来源于system.object类型,分为值类型和引用类型,分别存在内存的堆栈和托管堆中,值类型一般都是简单类型如int float double等,他们保存在堆栈中,是按后进先出(LIFO)原则存储数据项的一种数据结构。在计算机系统中,栈特指处理器支持的一块内存区域,其中保存着局部变量。工作方式是先分配内存的变量后释放(先进后出原则),所以一旦出了作用域就会被释放,所以在整个项目中无法使用,这个时候就想到了托管堆。 堆(托管堆)存储引用类型。此堆非彼堆,.NET中的堆由垃圾收集器自动管理。与堆栈不同,堆是从下往上分配,所以自由的空间都在已用空间的上面。现在来举个例子看看在内存中是如何通过堆栈和托管堆保存数据的。 Int a=100; 那么在堆堆栈中就会分出一块空间用来保存a,值为100,现在有一个方法 Int GetNum(int b) { b=500; Return b; } 这个时候把a的值作为参数传给这个方法,那么此时a的值会不会变成500呢,这个就是我们重点讨论的问题,方式就是一个临时的,用完就会被释放,其实我们只是复制了一个a的到方法里了,所有a的值不会改变 Student stu=new Student(); 我们知道上面的是一个引用类型的变量,它在内部的进程是 首先在堆栈中分出一块空间用来放Student stu的引用,然后将new Student(

Cache写机制:Write-through与Write-back

大憨熊 提交于 2020-01-28 07:16:52
Cache写机制:Write-through与Write-back 通常有三种方法: 1.write through:CPU向cache写入数据时,同时向memory(后端存储)也写一份,使cache 和memory的数据保持一致。优点是简单,缺点是每次都要访问memory, 速度比较慢。 2. post write:CPU更新cache数据时,把更新的数据写入到一个更新缓冲器,在合适的 时候才对memory(后端存储)进行更新。这样可以提高cache访问速度, 但是,在数据连续被更新两次以上的时候,缓冲区将不够使用,被迫同 时更新memory(后端存储)。 3. write back:cpu更新cache时,只是把更新的cache区标记一下,并不同步更新memory (后端存储)。只是在cache区要被新进入的数据取代时,才更新 memory(后端存储)。这样做的原因是考虑到很多时候cache存入的是中间结 果,没有必要同步更新memory(后端存储)。优点是CPU执行的效率提高, 缺点是实现起来技术比较复杂。 Write-through与Write-back和买卖东西相似,Write-Through就相当于你亲自去买东西, 你买到什么就可以亲手拿到;而Write-Back就和中介差不多,你给了中介钱,然后它告 诉你说你的东西买到了,然后就相信拿到这个东西了

Bookstore系统测试缺陷报告

[亡魂溺海] 提交于 2020-01-28 07:16:44
Bookstore 系统测试缺陷报告 缺陷编号 01.01.0001 发现人 王燕红 记录日期 2016-06-11 所属模块 购物车模块 确认人 王燕红 确认日期 2016-06-11 当前状态 公开 严重度 3 优先级 3 问题概述 用户在加入购物车添加数量为0时,点击购买也能添加进购物车。 问 题 再 现 描 述 登录用户,选择图书分类,; 选择图书C++购买数量为1 ,查看购物车已添加; 选择图书Oracle购物数量为0,购买,查看购物车,书籍已添加; 图书数量选择0时,也可添加进购物车。 问题隔离描述 数量为0 ,可添加进购物车。 日志 2016-06-11 15:11 Opened by Wangyh. 2016-06-11 16:00 Affirmed by Wangyh. 处理过程记录 问题已确认尚待处理 – 王燕红 2016-06-11 开发负责人 王燕红 修复日期 尚未修复 关闭日期 尚未关闭 缺陷编号 01.01.0002 发现人 王燕红 记录日期 2016-06-12 所属模块 购物车模块 确认人 王燕红 确认日期 2016-06-12 当前状态 公开 严重度 3 优先级 3 问题概述 购物车没有进行更新在切换用户的时候。 问 题 再 现 描 述 登录用户1,添加图书进入购物车,查看购物车内容; 登录用户2时,查看购物车内容; 在用户2下添加图书加入购物车;

python数据分析&办公自动化实战(四):数据聚合计算、表链接及透视表

試著忘記壹切 提交于 2020-01-28 07:16:39
本篇是python数据分析实战笔记的第四篇,主要内容包括数据汇总处理、表与表之间连接及实现数据透视表,涉及groupby、merge、pivot_table及value_counts等值操作的函数,以 代码+注释+总结 形式展示。 任务目标 :根据新签商家名单匹配商家损益情况 任务拆解 :生成新签商家名单,根据商家名单与当月全量的商家损益表做关键字匹配,输出以特定维度汇总的经营结果 代码展示 df1 = pd . read_excel ( doc1 , encoding = "gbk" ) df2 = pd . read_excel ( doc2 , encoding = "gbk" ) df3 = pd . merge ( df1 , df2 . loc [ : , [ "月份" , "商家名称" , "省区" , "收入不含税" ] ] , on = [ "月份" , "商家名称" , "省区" ] , how = "left" ) df3 . groupby ( [ "商家名称" ] ) . sum ( ) . reset_index ( ) . to_excel ( "新签客户收入情况_11月.xlsx" , encoding = "gbk" ) df4 = pd . pivot_table ( df3 , values = "收入不含税" , columns = "月份"

一道简单题

て烟熏妆下的殇ゞ 提交于 2020-01-28 07:14:35
关键是要排序,如AABBBBC,然后可比较,当相同时将当前位置向后移,而不增加统计数目,不同时增加统计数目,再退出第二循环,这样就可以统计了。 1 #include <iostream> 2 #include <string> 3 using namespace std; 4 5 int main() 6 { 7 int n,m,i,j; 8 char **a; 9 cin>>n; 10 if(n<1||n>1000) 11 cin>>n; 12 else{ 13 a=new char*[n]; 14 for(i=0;i<n;i++){ 15 a[i]=new char[20]; 16 cin>>a[i]; 17 strupr(a[i]); 18 } 19 for(i=0;i<n-1;i++) 20 for(j=0;j<n-i-1;j++) 21 if(strcmp(a[j],a[j+1])>0) 22 swap(a[j],a[j+1]); 23 m=1; 24 for(i=0;i<n;i++) 25 for(j=i+1;j<n;j++) 26 if(strcmp(a[i],a[j])!=0){ 27 m++; 28 break; 29 } 30 else 31 i++; 32 } 33 34 cout<<endl<<m<<endl; 35 for(i=0;i<n;i++) 36

工具导航Map