首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
看我头像会动
获赞
50
粉丝
2
关注
1
看过 TA
13
长安大学
2019
Java
IP属地:未知
暂未填写个人简介
私信
关注
拉黑
举报
举报
确定要拉黑看我头像会动吗?
发布(34)
评论
刷题
看我头像会动
关注TA,不错过内容更新
关注
2021-03-05 17:21
长安大学 Java
《用Go理解并发编程》2-1 Golang语言基础
本专栏关注并发编程。由于我们选择了Golang,有必要确保读者对于Golang的基本语法有充分了解,方能更加顺畅的参与之后的阅读并投身技术实践。 你可以通过互联网上丰富的基础资料进行学习,例如菜鸟教程( https://www.runoob.com/go/go-tutorial.html ) 等公开、免费的资料,从而了解Golang的基本语法和循环、条件等基本流程控制语句,我们将在这些基础之上,对这些知识点进行简要归纳并着重介绍接下来内容里与并发编程和并发编程优化高度相关的Golang语言特性。 除了基本语法,你还需要明白Golang的程序如何在电脑上编译运行——这样才能确保知识能够随时校验并...
0
点赞
评论
收藏
分享
2021-03-05 17:20
长安大学 Java
《用Go理解并发编程》1-2 定义与理解并发
本小节我们将重点讨论并发权威定义,以及如何理解。你将会看到针对并发、并行、分布式等易混淆概念的介绍与理解。 并发定义 狭义 并发一词是计算机术语,根据百度百科定义,狭义的并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。 如何理解这个狭义的定义?笔者认为这对某些初学者来说已经比较绕了。前文还说几个程序都在同一个处理机上处于已启动运行到运行完毕之间,怎么后文又变成了任意时刻点上只有一个程序在处理机上运行呢?别急,我们先来看广义的并发定义。 广义 广义上,并发指逻辑控制流在时间上重叠。 我们现在来解释其中...
0
点赞
评论
收藏
分享
2021-03-05 17:19
长安大学 Java
《用Go理解并发编程》1-1 并发思想起源
从同时画方圆探讨并发思想起源 尝试同时画方圆 还记得左手画方,右手画圆的挑战吗?也许大部分人都玩过。 反映了什么?左右手,相同的器官,相似的神经,相近的控制,让人交错难耐,欲罢不能。 于是你颤颤巍巍一边想着画方形,一边想着画圆形,终于是完成了看起来不太标准的巨制。 现在需要你思考一个问题,在你绘制方圆的过程中,从你的视角认为,画方圆是同时进行的么?试想一下从他人的视角,你的画方圆行为是同时进行的么? 不同的人可能会得出不同的答案,这是一个开放性的问题。不光你在思考,脑科学家也在思考,处理器研发人员也在思考。如果将大脑简化成当代大部分计算机所使用的X86架构处理方式,答案是确定的,一个处理单...
0
点赞
评论
收藏
分享
2021-03-05 17:15
长安大学 Java
《用Go理解并发编程》0-前言
学习并发编程必要性及重要性 并发可以看作一种程序的构造方式,其思想起源于原始的人类进化,贯穿整个计算机科学飞速发展的时代。 传统的世界观看来,世界独立个体间的任务行进是并行的,但是单个个体的任务执行序列却常常是串行的,为了进一步解放和提升生产力与生产水平,解决串行作业系统与并行化作业需求这一矛盾,并发思想应运而生。 在计算机网络与多核计算机没有得到充分发展前,并发相关的思想藏掖在不起眼的角落,相比面向对象等后续影响广而深远的,放至今日依然掷地有声的思想,并发思想在初期并未得到重视。 古语有云:“当一头牛拉不动一根圆木时,不应集中精力在培育更大更壮的牛上面。”但早期的我们却在相当长的一段时间内未...
0
点赞
评论
收藏
分享
2020-10-25 16:18
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》5.3 后记与致谢
后记与致谢 在本书的撰写过程中,离不开亲朋好友的支持,同时感谢如今这个开放的时代,充分的信息流动使得我们的思想能够逐步解放。 本书开创性的利用生物学和考古学,引入到现代计算机科学,并在文末引人遐想的探究了世界是否是虚拟的——又提及了少许的量子力学和相对论等现代物理范畴知识。本书尝试将笔墨更多的通过考究历史来证明当下的正确性,通过先高效的构建出并发系统,再回过头来考虑前人为何选择绕开的种种“坑”,希望各位读者在通读完本书后能够豁然开朗,耳目一新,切实的享受高层次抽象带来的代码建模遍历,并将并发设计的思想融入到生活中,更好的利用起来大自然赐予我们的原力。 我们在行文过程中,许多的地方知识点是相互衔...
0
点赞
评论
收藏
分享
2020-10-25 16:18
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》5.2 作者经历——谈面试与感悟
作者经历——谈面试与感悟 通过系统化对并发哲学思想的探讨,我们能够站在更高的层次分析先前学习的知识。 面试应用 许多的程序员谈及技术书籍的涉猎,往往是为了扩充知识面,而扩充知识水平可以充分量化的一个水平就是薪资待遇。通过跳槽往往可以提升薪水,而找工作很重要的一个环节就是面试。本人不敢妄谈自己有多高的薪水,但想说明的是读者应该如何将本书的知识应用到日常的面试过程中,来展示经过升级的,面向并发的认知。 不同于《剑指offer》等纯面试辅助书籍,本书的结果导向为通过正确理解并发概念,试图快速、正确的构建良好并发性能的程序,优化自己的代码工程,并将效率的提升引入到日常的生活中。从实用性上来说,是具有较...
0
点赞
评论
收藏
分享
2020-10-25 16:18
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》5.1 你学到了什么?
你学到了什么? 现在,作为最终的收官章节,我们有必要全面总结一下本书内容。 全书内容串讲 第一章,我们从生活朴素思考——人能否同时话方圆切入,开始考虑并发的问题。在日常问题的解决中,我们往往会遇到如下的难题: 如果一个实体自身无法在同一个时间点做两件事情,如何改进才可以让一个实体在同一时间点做两件事情? 从语句逻辑上来说,这本身就蕴含着矛盾:一个看起来无法完成的任务,需要我们得出解决方案。所以,我们需要以这一基本矛盾为原点,做出考虑面的延伸,以退让求解。 通过引入其他实体和自然规律,我们发现了解决这个问题的方案: 借助其他实体,综合考虑整个系统的同时性,系统内部从逻辑上来说可以存在同时了...
0
点赞
评论
收藏
分享
2020-10-25 10:37
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》4.5 毕竟是人脑创造了电脑
毕竟是人脑创造了电脑 本章我们围绕代码,问出了很多为什么,我称之为问道。 为什么并发如此重要的能力在计算机编程发展早期迟迟没有得到大幅度改良,相关的研究没有推进? 为什么线程和进程的概念总是经常被提及,但本书阐述的并发编程却感觉丝毫不涉及? 当基于协程的并发建模抽象逐渐成为主流,我的代码建模思想应该做出怎样的调整? 本章回答了这些问题,但价值不仅仅停留在这些问题。 对第一个问题,我们详细阐述了因为并发而引入的数据竞争、锁和更多的安全问题,这些安全问题有些可以通过工具来严格避免,但更多的则是不可以。面对各种问题,在并发代码逻辑上处理的每一步我们都需要小心翼翼。好在Golang提供了高层抽象,...
0
点赞
评论
收藏
分享
2020-10-25 10:37
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》4.4 谈为人处世与职场素质
谈为人处世与职场素质 本节我们探讨一个有意思的话题,正如先前所说,Golang通过高级的顶层抽象,帮助我们止部抽象链,不用像其他编程语言一样,考虑许多底层的问题。这样做的一大好处就是,我们能够借助Golang,在并发编程过程中更加直观的对任务目标以及实现过程进行直接编码。 在4.2节中,我们通过构建“李华的早晨”,通过对李华经历的早晨种种事情的抽象和梳理,发现最终只需要进行对原先第三章内学习的代码块、范式拼接即可,真正做到了90%的时间考虑如何编码,10%的时间书写代码,如此这般“高级程序员”的风范。 本书写到这里,我们不禁要思考一个问题,借助代码究竟可以做到多直接的抽象,而这些实际抽象出来的...
0
点赞
评论
收藏
分享
2020-10-25 10:35
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》4.3 谈并发与进程、线程、协程
谈并发与进程、线程、协程 作为操作系统内重要的抽象概念,各类语言在谈起底层资源调度的时候,往往离不开探讨进程和线程。诸如进程和线程的区别,也往往是各种面试过程中常常考察的问题。本节我们从并发视角出发,来重新审视一下进程、线程,和由Golang等语言引入进来独有的协程的相关知识。 什么是进程、线程、协程 这里我就直接引用网上来源的普遍说法了。 1、进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。每个进程都有自己的独立内存空间,不同进程通过进程间通信来通信。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟...
0
点赞
评论
收藏
分享
2020-10-25 10:34
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》4.2 谈代码背后的行为建模和分析
谈代码背后的行为建模和分析 得益于基于Golang超强力的并发原语抽象,我们能够站在前人的肩膀上,史无前例的对自己将要展开的代码工程进行充分的行为建模和分析。 进一步总结第三章的内容,我们已经掌握了绝大部分的流程要素。包工头的视角过于庞大,但只要不离开包工头背后蕴含的基本哲学——基于任务分配的考量,那么我们探讨类似的相关理解模型,也是有意义的。现在我们以一个简单的日常生活作为范本,进行基于并发思想的代码编写流程解构,并探讨其中蕴含着的,我们关心的问题。 充实的早晨——代码抽象、模块化、成型 李华是红星中学的学生。李华的周六首先是起床: 舍友早早起床,前去上厕所 闹钟尝试唤醒,李华将检查时间,...
0
点赞
评论
收藏
分享
2020-10-25 10:29
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》4.1 谈并发实现为何简单而又困难
谈并发实现为何简单而又困难 你肯定已经不再是只知道掌握并发重要性的人了。通过对投掷者模型和包工头模型的贯彻落实,你也明白了并发思想起源于人类社会发展过程中在人-物、人-人两类要素的顺序作业之间协调的艺术。随后通过一门简单易懂,对并发超简洁抽象的语言——Golang,来掌握了借助基本并发要素,构建可承接伸缩需求任务的并发程序。你一定现在有很多的问题,有自身的疑惑,有对背后机制和原理探索的渴望,甚至对书本知识点内容不全的质疑。 带着这些问题,本章,我们开始问道。 从计算机编程发展至今,已经走过几十年的历史。人们不禁要问,为何在计算机发展早期,编程语言的并发特性并没有很好的跟上人们朴素生活流程的抽象...
0
点赞
评论
收藏
分享
2020-10-25 10:29
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》3.7 并发编程的模块、范式、设计
并发编程的模块、范式、设计 本章我们讲解了基于Golang的并发编程知识。 相比第一章和第二章,本章的理解门槛进一步提升,因为有越来越多的与代码相关的知识涌现出来。但对于渴望依托并发思想实际提升程序运转能力的人们来说,无疑是可喜的,因为我们用具象的手段,将并发思想融入到了具体程序中。 学习并发编程的编程语言选型 首先,我们介绍了云原生时代下首选的并发编程学习语言——Golang,得益于谷歌的品牌背书,Golang自诞生之时,就是一门现代编程语言,这不仅意味着多核、面向网络等设计因素被充分考量,切实方便程序员进行现代高级语言编程也成为了现代所有新生编程语言的使命。 从Golang的基本案例中,我...
0
点赞
评论
收藏
分享
2020-10-07 18:32
长安大学 Java
《并发哲学:从编程入道到开悟升天》3.6 从经典案例谈可伸缩并发设计
从经典案例谈可伸缩并发设计 设计往往和哲学有更大的关系,因为设计意味着思路的自由,不像范式这样禁锢。范式就好比,如果你想,你应该这样做,而设计则在于,如果你这样做,你能够更好。为此作者本人还总结出了两句蹩脚的英文: 范式: If you want, you should do. 设计: If you do, you can be better! 本节主要对并发编程过程中的设计考量进行简略的整理,以力求在实际的并发编程过程中取得提优的效果。 从前几章走来,我们反复强调,并发作为一种起源古老,指导整个人类协调物、协调其他人类的重要思想,重要性不言而喻。将其应用到编程领域,目的也不是为了让各类并...
0
点赞
评论
收藏
分享
2020-10-07 18:32
已编辑
长安大学 Java
《并发哲学:从编程入道到开悟升天》3.5 是时候了解并发范式
是时候了解并发范式 范式(paradigm)的概念和理论是美国著名科学哲学家托马斯·库恩(Thomas Kuhn) 提出并在《科学***的结构》(The Structure of Scientific Revolutions)(1962)中系统阐述的。很明显,这是一种哲学的概念。简而言之,范式就是在拥有基本生产与科学研究要素背景下,提炼出具有一定程度公认性、为更高层次生产和研究提供纲领性的指导意见与方法论。 通俗的说,范式就是指,建立在某个基本科学体系内,如果你要怎么样,最好应该怎么干的指导方针。就好比如果你想得到一杯开水,最好的方法是找一个有开水的地方接一杯。你想要获得好的睡眠,最好要创造出...
0
点赞
评论
收藏
分享
1
2
3
关注他的用户也关注了:
牛客网
牛客企业服务