重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
请实现 个算法,确定 个字符串的所有字符【是否全都不同】。这 我们要求【不允
成都创新互联专业为企业提供仙居网站建设、仙居做网站、仙居网站设计、仙居网站制作等企业网站建设、网页设计与制作、仙居企业网站模板建站服务,十年仙居做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
许使 额外的存储结构】。 给定 个string,请返回 个bool值,true代表所有字符全都
不同,false代表存在相同的字符。 保证字符串中的字符为【ASCII字符】。字符串的
度 于等于【3000】。
这 有 个重点,第 个是 ASCII字符 , ASCII字符 字符 共有256个,其中128个是常
字符,可以在键盘上输 。128之后的是键盘上 法找到的。
然后是全部不同,也就是字符串中的字符没有重复的,再次,不准使 额外的储存结
构,且字符串 于等于3000。
如果允许其他额外储存结构,这个题 很好做。如果不允许的话,可以使 golang内置
的 式实现。
通过 strings.Count 函数判断:
使 的是golang内置 法 strings.Count ,可以 来判断在 个字符串中包含
的另外 个字符串的数量
还有不同的方法同样可以实现,你了解吗?
推荐go相关技术 专栏
gRPC-go源码剖析与实战_带你走进gRPC-go的源码世界-CSDN博客
语言表达能力是招聘者在 面试 中经常考查的能力之一,语言表达能力的好坏会影响个人求职者的求职成败。下面是由我分享的语言表达能力 面试题 及参考答案,希望对你有用。
语言表达能力面试题及参考答案
1.编 故事 :河流、冰冷、墙、订书机、急躁
「参考答案」小王是一个乡村教师,那年冬天,他到县城去采购一些教学用品,回来经过一条独木桥时,不小心滑倒到河流中,连袋子里的东西也掉了出来,小王顾不上冰冷刺骨的河水,连忙去捞,但是捞来捞去,就只找到一个订书机,奇怪了,其他的东西到哪儿去了?正在小王急躁地找来找去的时候,忽然耳边听到一阵鸡啼声,他猛得爬起来,不小心撞到墙上,他摸着头,呼了一口气,原来是做了一场恶梦。
2.编故事:意见、汽车、比赛、犯罪、青年
「参考答案」几个青年因为跟家里父母的意见不合,不服管教,所以决定离家出走,一起到大城市捞世界。在大城市里,看着街上人来人往,道路上汽车川流不息,而他们身无分文,只好过着流浪的日子。在生存的压力下,他们走上了犯罪的道路,加人了抢包一族,他们甚至展开比赛,看谁抢夺的财物最多。但是多行不义必自毙,公安部门掌握了他们的犯罪证据,很快把他们绳之以法,使他们得到了应得的下场。
5.串词:展示、策划、高兴、网络、敏捷。
「参考答案」小王在某某网络公司今年举办的比赛中,展示了敏捷的思维能力和高超的策划能力,从而赢得了头奖,高兴之下,他请我们这帮朋友到他家聚会庆祝。
6.串词:发展、诚信、事业、智慧、小康。
「参考答案」我国现在处于全面建设小康社会的阶段,正大力提倡诚实守信。的确,诚信是构筑社会良好关系的桥梁,一个人想要取得事业的发展,除了具有智慧和勤奋,还必须保持诚信。
7.串词:兴奋、树林、河流、成功、努力。
「参考答案」经过大家的共同努力,终于成功地扑灭了大火,沿河流一带的大部分树林得到保护,这是一件值得兴奋的事。
8.编故事:判断、升级、意向、联系、交通。
「参考答案」老李是交通系统的工程师,负责公路测量。因为测量设备非常落后,造成误差很大,难以做出正确的判断,所以老李产生了升级测量设备的念头,他把这种意向积极与上级联系、沟通,上级终于批准了他的建议。
9.串词:环境、实力、旅游、基础、发展。
「参考答案」旅游产业想要取得快速发展,首先必须苦练内功,打好基础。需要我们从交通、饮食、住宿及服务环节给游客创造一个良好的外部环境,这样才能提升旅游产业的实力,吸引更多的游客,带动更多的产业共同发展。
10.串词:活动、金融、病毒、细菌、故障。
「参考答案」现代银行在处理金融账目的时候,越来越多地借助计算机和计算机网络。然而在享受计算机所带来方便的同时,也面临着计算机病毒入侵问题。计算机病毒好比人体内的细菌,细菌在人体内的活动和繁殖会使人生病,而计算机病毒入侵计算机后则会使计算机出现故障。如何尽量避免计算机病毒带来的危害,已经成为银行界考虑的问题。
11.编故事:电影、部门、简单、推断、价格。
「参考答案」老李和老侯是一个部门的同事,下班后约定一起去看电影,到了电影院门口,他们通过电影海报简单推断,觉得其中一部喜剧片比较好看,虽然价格贵了一点,但是他们毫不犹豫地买了票。
12.串词:价格、凝聚、信用、捐献、办法。
「参考答案」某地发生严重洪涝灾害,某些不法商贩不顾人道不讲信用,乘机哄抬生活必需品价格,让灾民生活雪上加霜。政府立即出面制止了这种行为,拨款赈灾,并呼吁全国人民以自愿捐献的办法支援灾区。捐献到灾区的钱、物,无不凝聚着党和国家、人民那沉甸甸的爱心。
13.编故事:曙光、房屋、陷阱、湖泊、交通。
「参考答案」小李富有冒险精神,这次他和朋友去了一个小岛探险,到达目的地后,才发现那里人烟稀少,湖泊密布,房屋难得一见,而且交通极不方便。接着他们进入了一个岩洞,里面阴森恐怖,仿佛一个个陷阱在等待他们,他们互相鼓励,互相帮助,终于在天亮前走出了这个岩洞,迎来了新一天的曙光。
14.串词:模范、应届、自律、评选、收入。
「参考答案」小王是今年的应届 毕业 生,进入单位工作后,尽管收入不高,但他严于自律,努力工作。他目前最大的希望就是两年内能够在模范人物的评选中胜出,成为单位的中坚力量。
15.编故事:休假、事件、车辆、钢琴、清楚。
「参考答案」小李今天休假,他正愉快地开着车准备去野外踏青,突然发现前面高速公路已经堵塞了,打听才知道前面发生了比较严重的车辆相撞事件。小王清楚地知道,一时半刻是走不了了,无奈之下,只好打开音响,播放自己最喜欢的钢琴曲,借以打发等待的时光。
16.串词:合作、阳光、操作、成功、探索。
「参考答案」阳光和水分的合作,可以给大地带来一片生机,而企业间的强强联手,联合操作,共同探索发展方向,无疑更能给企业带来巨大的成功。
17.串词:树木、生命、呼吸、计算机、改变。
「参考答案」二十一世纪是信息时代,通过计算机上网,可以帮助我们了解外面世界的改变,还可以了解树木是如何通过呼吸效应为人类生命的健康而服务的。
18.串词:电视、发展、小康、清洁、满意。
「参考答案」从电视上我们可以看到,随着我国社会的不断发展,很多家庭不但过上了小康生活,而且很注重生活质量。有些家庭在休息日外出郊游时,把打扫卫生、清洁家具等工作交给家政服务公司来做,这样既可以从繁重的家务中摆脱出来,又增加了社会就业。这不失为一个令人满意的好办法。
19.串词:饥饿、光线、怀疑、房屋、启发。
「参考答案」小明下班后发现房间里的光线昏暗,原来一个日光灯坏了。他怀疑电路出了问题,于是火速 修理 ,但一直修理到晚上都未能修好。小明觉得非常饥饿,就在这时,他回想起自己上电工课时,老师说的一句话,大受启发,很快就把问题找了出来并解决掉。房屋终于明亮了。
20.串词:空虚、湖泊、原则、印刷、展示。
「参考答案」小李是一名摄影家,他特别钟情于湖泊的美景。即使孤身一人前往郊区拍摄,他也从来没有觉得空虚,反而自得其乐。他做事很有原则,工作很负责。他把拍出来的照片投稿到杂志社。让他们把相片印刷出来,让湖泊的美景能展示在人们眼前。
21.串词:丰富、摇篮、水平、编译、活动。
「参考答案」王老师是一个有着丰富编译知识的人,他工作的地方是一所有着“编译人才的摇篮”著称的学校,很多学生在他的教导下,在比赛、活动中屡次获得好成绩,为社会培养了一批批的编译人才。虽然王老师桃李满天下,但他不满足于现状,不断地提高自己的水平,继续为写一本编译书而努力。
语言表达能力训练 方法
(一)勤于倾听,细心领会
听是说的基础。要想会说,首要的前提条件就是养成爱听、多听、会听的好习惯,如多听新闻、多听演讲、多听别人说话等,这样就可以获取大量的、丰富的信息。这些信息经过大脑的整合、提炼,就会形 成语 言智慧的丰富源泉。培养听的能力,就为培养说的能力打下坚实的基础。
1.多听时政要闻,领会方针政策。目前,电视是最感性的语言来源。注意多看多听时政要闻和深度访谈性节目,如报考厅级职位的应试者,多听央视的“新闻联播”、“焦点访谈”、“新闻调查”、“面对面”、“朝闻天下”和“新闻1 +1”等栏目,报考处级或科级职位的应试者,应多听所在省、直辖市或自治区的新闻栏目。这样,应试者就可以达到以下三个目的:一是可以更多地了解党和国家、地方上的大政方针、路线政策,了解国家或地方的大事、新事、奇事、怪事,或发生在老百姓身边的一些生活琐事;二是可以更好地学习别人的交谈技巧,听我们国家的领导人讲话的方式、思考问题的角度和解决问题的 措施 等;三是能经常学习和吸收一些新的语言,尤其是与国家大政方针有关的以及与领导干部有关的词汇。
2.多听群众呼声,分析百姓所想。想是让思维条理化的必由之路。在现实生活中,很多时候我们不是不会说,而是不会想,想不明白也就说不清楚。在向考官说明一件事情、介绍自己之前,要认真想想事情发生的时间、地点和经过;多分析一下社会的矛盾及其产生的原因、对策,解决后对树立、提升党和国家、政府形象的好处,以及不及时解决对产生什么危害;多想一想老百姓的所想、所需、所求、所盼,等等。有了比较条理化的思维,才会使自己的语言更加条理化。
3.多听反对意见,分析前因后果。凡事皆有前因后果,也有利弊。领导干部要做的是为老百姓做些实实在在的事,是要成绩的,但是领导干部绝对不能面对成绩沾沾自喜,不思进取,更多的是居安思危,多听反对意见,分析这些反对意见出现的原因、危害及其相应的对策等。
(二)勤于积累,分类归纳
仅言语表达能力而谈言语表达能力还是远远不够的,还必须努力积累有关的知识。大家都会发现,那些伶牙利齿的“巧舌媳妇”,尽管能说会道,但却登不了“大雅之堂”。出色的言语表达能力,其实是由多种内在素质综合决定的,它需要冷静的头脑、敏捷的思维、超人的智慧、渊博的知识及一定的 文化 修养。为此,应试者还必须勤于积累大量的知识并分类归纳。注重知识的积累包含着两层含义:其一是自觉积累;其二是整理归类。
1.自觉积累。处处留心皆学问。知识的积累可以说是每时每刻都在发生的,但是如果我们不能把所看、所听、所想到的知识同领导干部面试的内容自觉地联系起来,那么这样的知识要么稍纵即逝,要么成为无用的信息堆积在“垃圾库”里。对知识积累的“自觉性”主要通过以下几个途径进行:
(1)广泛阅览中的积累。这一途径强调的是经常性地对诸如《人民日报》、《光明日报》、《半月谈》和地方上的党报党刊上新闻资料的阅读积累,自觉地关注同面试内容相关的大量材料,并把那些诸如政治、法律、沟通交流、事件处理方面的典型的、实用的材料采集下来。
(2)“ 热点 ”材料的积累。社会热点是领导干部面试最常考的题型之一,甚至可以说是必考题型(如湖北2010年10月19日、20日的厅级职位的第一题、有关的专业题)。这些材料往往具有新颖性、生动性的特点,能充分体现学生的综合分析能力。因而当出现这些热点时,要自觉地关注和收集这些材料,特别是最近一年内在国内或地方上发生的有自己所报考的职位相关的社会热点材料。
(3)方针政策理论的积累。领导干部需要贯彻落实党和国家的路线、方针、政策。在面试过程中,虽然很少直接对理论进行考察,但应试者在面试过程中,应试者必须通过对问题的分析来体现自己的政治敏感性。有很多应试者几乎没有政治敏感性,就只知道现在要落实“科学发展观”、“以人为本”,但不知道这些思想在政治建设、经济建设、精神建设、生态建设和就业、住房、医疗、 教育 等民生问题等方面上的具体落实,更不知道在自己所报考的职位如畜牧工作中的细化和结合。所以,应试者要结合自己所报考的岗位,做更深入、更详细地了解、积累党和国家的路线方针政策等,并尽力做到细化、实用化。
(4)相关专业能力的积累。大多数应试者专业实践能力相对较差,故应多注意与其所报考岗位的职级、职位的职能和专业 经验 的积累。
2.整理归类。由于积累的材料数量大、范围广、时间长,如果不能及时进行整理归类这些材料,随着时间的推移要么逐渐被遗忘,要么束之高阁堆放在某个角落,待到用时难以找到,难发挥预期的效果。因此,应试者应对积累的材料按照综合分析、语言表达、沟通协调、突发事件应对、工作创新和个性特征等测评要素进行分类梳理和归类。
(三)勤于思考,提升素质
没有自觉的积累,就不会产生思考;没有勤于的思考,就不会形成丰富的知识。知识材料的积累,仅仅为应试者分数的提高提供了可能性,而要使这种可能性转变为现实性,则依赖于另一个过程,即对所积累的教材进行分析、提炼、修改、对比等处理,使它们能准确地熔合在面试答题过程中,使面试过程显得新颖、生动、形象,让考官易于接受。应试者勤于思考的过程,就是提升自己素质的关键过程。同样的材料,有的应试者能在面试中运用地灵活自如,有的却很牵强附会。这些不同的结果恰恰说明了对材料不进行思考处理,材料是不会自动体现自身价值的,甚至是废纸一堆。
(四)勤于练习,掌握方法
同样的话,由不同的人说,效果大不一样。言语表达能力好的应试者,他的语言感情丰富,层次清晰,语句生动活泼,语调铿锵委婉,语音洒脱自如,语速流畅轻快,再加上或对事件的组织全面、周密,或对问题的分析既有广度也有深度,或显示出了很强的沟通协调能力,都会使考官听得津津有味;相反,那些言语表达能力差的应试者,在回答问题时,或晦涩呆板,或言不及义,或背诵照搬,则会让考官昏昏欲睡。这样即使知识渊博,思路清晰,也难以发挥作用,达不到预期的效果。这就要求应试者必须勤于练习言语表达能力。
领导干部的发音非常重要。沉稳而富有磁性、高穿透力的声音能给人留下朝气蓬勃、富有激情、严肃而又亲切的印象,而这又属于领导干部个性特征的重要组成部分。人类发音,没有单独的发音器官,是使用呼吸器官、消化器官来做发音器官的。发音器包括呼吸器官、喉头和声带、口腔和鼻腔三个部分。其中,除了声带外,其他所有的发音器官都是“兼职”。说话时,横在呼出气流通道上的两条声带,迅速地一开一闭,把稳定的气流切成一串串的喷流,进而转换成听得见的峰音,随着舌、唇、腭等器官的运动,不断改变声道的声学性质,将峰音变成能区别的语音,通过胸腔、喉腔、咽腔、鼻腔、口腔组成的共鸣器放大而发出声音。这就是发音的全过程。从这个过程中可以看出,发音效果如何,与呼吸、声带、共鸣器等有着直接的关系。
要想使说话的声音好听和持久,就要正确的运用共鸣器。而运用共鸣器的关键在于处理好“畅”与“阻”的对立和统一关系。所谓“畅”,就是整个发音得声道必须畅通无阻,胸部舒展自如,喉部放松滑润,脊背自然伸直,以便声音不憋不挤,形成一个声柱流畅地奔涌出来。所谓“阻”,并不是简单的把声音阻挡住,而是不让声音直截了当地通过声道奔涌出来,让它通过共鸣器加工、锤炼、变得洪亮、圆润、雄浑、优美动听。
使用go语言的好处: go语言的设计是务实的, go在针对并发上进行了优化, 并且支持大规模高并发, 又由于单一的码格式, 相比于其他语言更具有可读性, 在垃圾回收上比java和Python更有效, 因为他是和程序同时执行的.
1. 进程, 线程, 协程的区别, 协程的优势
2. 讲一下GMP模型(重点)
3. Go的GC, 混合写屏障(重点)
4. go的Slice和数组的区别, slice的扩容原理(重点)
5. 讲一下channel,实现原理(重点)
6. 讲一下Go的Map的实现原理, 是否线程安全, 如何实现安全(重点)
7. new 和 make 的区别
8. 说一下内存逃逸
9. 函数传指针和传值有什么区别
10. goroutine之间的通信方式
11. 测试是怎么做的(单元测试, 压力测试)
12. 堆和栈的区别
原文:【 】
如果有解答的不对的,麻烦各位在评论写出来~
go的调度原理是基于GMP模型,G代表一个goroutine,不限制数量;M=machine,代表一个线程,最大1万,所有G任务还是在M上执行;P=processor代表一个处理器,每一个允许的M都会绑定一个G,默认与逻辑CPU数量相等(通过runtime.GOMAXPROCS(runtime.NumCPU())设置)。
go调用过程:
可以能,也可以不能。
因为go存在不能使用==判断类型:map、slice,如果struct包含这些类型的字段,则不能比较。
这两种类型也不能作为map的key。
类似栈操作,后进先出。
因为go的return是一个非原子性操作,比如语句 return i ,实际上分两步进行,即将i值存入栈中作为返回值,然后执行跳转,而defer的执行时机正是跳转前,所以说defer执行时还是有机会操作返回值的。
select的case的表达式必须是一个channel类型,所有case都会被求值,求值顺序自上而下,从左至右。如果多个case可以完成,则会随机执行一个case,如果有default分支,则执行default分支语句。如果连default都没有,则select语句会一直阻塞,直到至少有一个IO操作可以进行。
break关键字可跳出select的执行。
goroutine管理、信息传递。context的意思是上下文,在线程、协程中都有这个概念,它指的是程序单元的一个运行状态、现场、快照,包含。context在多个goroutine中是并发安全的。
应用场景:
例子参考:
waitgroup
channel
len:切片的长度,访问时间复杂度为O(1),go的slice底层是对数组的引用。
cap:切片的容量,扩容是以这个值为标准。默认扩容是2倍,当达到1024的长度后,按1.25倍。
扩容:每次扩容slice底层都将先分配新的容量的内存空间,再将老的数组拷贝到新的内存空间,因为这个操作不是并发安全的。所以并发进行append操作,读到内存中的老数组可能为同一个,最终导致append的数据丢失。
共享:slice的底层是对数组的引用,因此如果两个切片引用了同一个数组片段,就会形成共享底层数组。当sliec发生内存的重新分配(如扩容)时,会对共享进行隔断。详细见下面例子:
make([]Type,len,cap)
map的底层是hash table(hmap类型),对key值进行了hash,并将结果的低八位用于确定key/value存在于哪个bucket(bmap类型)。再将高八位与bucket的tophash进行依次比较,确定是否存在。出现hash冲撞时,会通过bucket的overflow指向另一个bucket,形成一个单向链表。每个bucket存储8个键值对。
如果要实现map的顺序读取,需要使用一个slice来存储map的key并按照顺序进行排序。
利用map,如果要求并发安全,就用sync.map
要注意下set中的delete函数需要使用 delete(map) 来实现,但是这个并不会释放内存,除非value也是一个子map。当进行多次delete后,可以使用make来重建map。
使用sync.Map来管理topic,用channel来做队列。
参考:
多路归并法:
pre class="vditor-reset" placeholder="" contenteditable="true" spellcheck="false"p data-block="0"(1)假设有K路a href=""数据流/a,流内部是有序的,且流间同为升序或降序;
/pp data-block="0"(2)首先读取每个流的第一个数,如果已经EOF,pass;
/pp data-block="0"(3)将有效的k(k可能小于K)个数比较,选出最小的那路mink,输出,读取mink的下一个;
/pp data-block="0"(4)直到所有K路都EOF。
/p/pre
假设文件又1个G,内存只有256M,无法将1个G的文件全部读到内存进行排序。
第一步:
可以分为10段读取,每段读取100M的数据并排序好写入硬盘。
假设写入后的文件为A,B,C...10
第二步:
将A,B,C...10的第一个字符拿出来,对这10个字符进行排序,并将结果写入硬盘,同时记录被写入的字符的文件指针P。
第三步:
将刚刚排序好的9个字符再加上从指针P读取到的P+1位数据进行排序,并写入硬盘。
重复二、三步骤。
go文件读写参考:
保证排序前两个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同的排序叫稳定排序。
快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法。
基数排序、冒泡排序、直接插入排序、折半插入排序、归并排序是稳定的排序算法。
参考:
head只请求页面的首部。多用来判断网页是否被修改和超链接的有效性。
get请求页面信息,并返回实例的主体。
参考:
401:未授权的访问。
403: 拒绝访问。
普通的http连接是客户端连接上服务端,然后结束请求后,由客户端或者服务端进行http连接的关闭。下次再发送请求的时候,客户端再发起一个连接,传送数据,关闭连接。这么个流程反复。但是一旦客户端发送connection:keep-alive头给服务端,且服务端也接受这个keep-alive的话,两边对上暗号,这个连接就可以复用了,一个http处理完之后,另外一个http数据直接从这个连接走了。减少新建和断开TCP连接的消耗。这个可以在Nginx设置,
这个keepalive_timout时间值意味着:一个http产生的tcp连接在传送完最后一个响应后,还需要hold住keepalive_timeout秒后,才开始关闭这个连接。
特别注意TCP层的keep alive和http不是一个意思。TCP的是指:tcp连接建立后,如果客户端很长一段时间不发送消息,当连接很久没有收到报文,tcp会主动发送一个为空的报文(侦测包)给对方,如果对方收到了并且回复了,证明对方还在。如果对方没有报文返回,重试多次之后则确认连接丢失,断开连接。
tcp的keep alive可通过
net.ipv4.tcp_keepalive_intvl = 75 // 当探测没有确认时,重新发送探测的频度。缺省是75秒。
net.ipv4.tcp_keepalive_probes = 9 //在认定连接失效之前,发送多少个TCP的keepalive探测包。缺省值是9。这个值乘以tcp_keepalive_intvl之后决定了,一个连接发送了keepalive之后可以有多少时间没有回应
net.ipv4.tcp_keepalive_time = 7200 //当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。一般设置为30分钟1800
修改:
可以
tcp是面向连接的,upd是无连接状态的。
udp相比tcp没有建立连接的过程,所以更快,同时也更安全,不容易被攻击。upd没有阻塞控制,因此出现网络阻塞不会使源主机的发送效率降低。upd支持一对多,多对多等,tcp是点对点传输。tcp首部开销20字节,udp8字节。
udp使用场景:视频通话、im聊天等。
time-wait表示客户端等待服务端返回关闭信息的状态,closed_wait表示服务端得知客户端想要关闭连接,进入半关闭状态并返回一段TCP报文。
time-wait作用:
解决办法:
close_wait:
被动关闭,通常是由于客户端忘记关闭tcp连接导致。
根据业务来啊~
重要指标是cardinality(不重复数量),这个数量/总行数如果过小(趋近于0)代表索引基本没意义,比如sex性别这种。
另外查询不要使用select *,根据select的条件+where条件做组合索引,尽量实现覆盖索引,避免回表。
僵尸进程:
即子进程先于父进程退出后,子进程的PCB需要其父进程释放,但是父进程并没有释放子进程的PCB,这样的子进程就称为僵尸进程,僵尸进程实际上是一个已经死掉的进程。
孤儿进程:
一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。
子进程死亡需要父进程来处理,那么意味着正常的进程应该是子进程先于父进程死亡。当父进程先于子进程死亡时,子进程死亡时没父进程处理,这个死亡的子进程就是孤儿进程。
但孤儿进程与僵尸进程不同的是,由于父进程已经死亡,系统会帮助父进程回收处理孤儿进程。所以孤儿进程实际上是不占用资源的,因为它终究是被系统回收了。不会像僵尸进程那样占用ID,损害运行系统。
原文链接:
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
避免方法:
端口占用:lsof -i:端口号 或者 nestat
cpu、内存占用:top
发送信号:kill -l 列出所有信号,然后用 kill [信号变化] [进程号]来执行。如kill -9 453。强制杀死453进程
git log:查看提交记录
git diff :查看变更记录
git merge:目标分支改变,而源分支保持原样。优点:保留提交历史,保留分支结构。但会有大量的merge记录
git rebase:将修改拼接到最新,复杂的记录变得优雅,单个操作变得(revert)很简单;缺点:
git revert:反做指定版本,会新生成一个版本
git reset:重置到某个版本,中间版本全部丢失
etcd、Consul
pprof
节省空间(非叶子节点不存储数据,相对b tree的优势),减少I/O次数(节省的空间全部存指针地址,让树变的矮胖),范围查找方便(相对hash的优势)。
explain
其他的见:
runtime2.go 中关于 p 的定义: 其中 runnext 指针决定了下一个要运行的 g,根据英文的注释大致意思是说:
所以当设置 runtime.GOMAXPROCS(1) 时,此时只有一个 P,创建的 g 依次加入 P, 当最后一个即 i==9 时,加入的最后 一个 g 将会继承当前主 goroutinue 的剩余时间片继续执行,所以会先输出 9, 之后再依次执行 P 队列中其它的 g。
方法一:
方法二:
[图片上传失败...(image-4ef445-1594976286098)]
方法1:to_days,返回给的日期从0开始算的天数。
方法2:data_add。向日期添加指定时间间隔
[图片上传失败...(image-b67b10-1594976286098)]