IntelliJ IDEA

java多线程中的死锁、活锁、饥饿、无锁都是什么鬼?

牧云@^-^@ 提交于 2020-08-05 04:59:13
死锁、活锁、饥饿是关于多线程是否活跃出现的运行阻塞障碍问题,如果线程出现了这三种情况,即线程不再活跃,不能再正常地执行下去了。 死锁 死锁是多线程中最差的一种情况,多个线程相互占用对方的资源的锁,而又相互等对方释放锁,此时若无外力干预,这些线程则一直处理阻塞的假死状态,形成死锁。 举个例子,A同学抢了B同学的钢笔,B同学抢了A同学的书,两个人都相互占用对方的东西,都在让对方先还给自己自己再还,这样一直争执下去等待对方还而又得不到解决,老师知道此事后就让他们相互还给对方,这样在外力的干预下他们才解决,当然这只是个例子没有老师他们也能很好解决,计算机不像人如果发现这种情况没有外力干预还是会一直阻塞下去的。 活锁 活锁这个概念大家应该很少有人听说或理解它的概念,而在多线程中这确实存在。活锁恰恰与死锁相反,死锁是大家都拿不到资源都占用着对方的资源,而活锁是拿到资源却又相互释放不执行。当多线程中出现了相互谦让,都主动将资源释放给别的线程使用,这样这个资源在多个线程之间跳动而又得不到执行,这就是活锁。 饥饿 我们知道多线程执行中有线程优先级这个东西,优先级高的线程能够插队并优先执行,这样如果优先级高的线程一直抢占优先级低线程的资源,导致低优先级线程无法得到执行,这就是饥饿。当然还有一种饥饿的情况,一个线程一直占着一个资源不放而导致其他线程得不到执行

【idea激活码】,【WebStorm激活码】,【DataGrip激活码】,【IntelliJ 全家桶系列】,【定期更新】

时间秒杀一切 提交于 2020-08-05 04:59:02
资金允许,请支持正版 IntelliJ全家桶系列 idea激活码、PyCharm激活码、PhpStorm激活码、WebStorm激活码、RubyMide激活码、AppCode激活码、CLion激活码、GoLand激活码、DataGrip激活码、Rider激活码、Android Studio激活码 请确保你没有更改过hosts文件,如果修改过请删除网址再激活。 文件路径:C:\Windows\System32\drivers\etc\hosts 如果你是用过jetbrains-agent.jar这类的破解文件,请删除:****.exe.vmoptions的引入信息 以WebStorm为例如下: 重启输入激活码即可。 激活码: 第一期 更新于: 2020年2月28日 VBHJS3F56S-eyJsaWNlbnNlSWQiOiJWQkhKUzNGNTZTIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5r

使用Skywalking追踪你的SpringBoot程序

落花浮王杯 提交于 2020-08-05 04:02:13
原文: https://blog.csdn.net/u011536031/article/details/105348475 由于Skywalking符合opentracing的数据标准,而opentracing也是未来的大势所趋。特写一个傻瓜式教程,帮你手把手进行监控自己的SpringBoot程序。 1.准备工作: 访问https://github.com/apache/skywalking/releases 去下载一个skywalking安装包,我这里使用的是6.6.0版本。 测试用的SpringBoot代码,少许。 一个IDEA 2.安装 直接对其解压,然后运行 startup.bat 或者 startup.sh(Linux or MacOS) 3.配置SpringBoot启动参数: 需要填写如下的运行参数,代码放在后面,需要的自己粘贴,别忘记修改真实目录哦! -javaagent:D:\\dev_tools\\apache-skywalking\\agent\\skywalking-agent.jar SW_AGENT_NAME=ad-eureka(这个是配置在skywalking上显示的姓名) SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800(配置skywalking OAP地址) 4.品尝skywalking的美好

2020暑假训练日记

怎甘沉沦 提交于 2020-08-05 03:06:48
\[\Huge\text{愉快的暑假} \] 7.1 上午回学校口语考试。( “语考试”是谁? )。考试结束已经13:00了。号家军赶去参加模拟赛,留我一个人在校园里瞎逛,原希望“偶遇”syn,未成功。2:10左右回到家。睡了个午觉。4:30起床。总而言之今天4:30以前啥也没干。 起床后,吃晚饭前,做了上一场div3的 E1 Reading Books (easy version) ,是简单贪心。想继续贪心搞一下 E2 ,但是WA了。后来看了一眼题解才明白E2需要 枚举 “a=1,b=1”这类东西的数量,然后快速计算代价。我想到了用二分来计算代价。于是写了这个题。 写E2的同时,我还在水nfls oi 交流群(又名:djq waxberry 贴贴群)。 时间一晃就到了晚上9:30。我开始打CF div2 。用的是原本2046分的小号 diamond_dick 。A题,我脑子短路了没想出来。B,C,D都比较简单。然后回过头来想出了A。最后认真做了一下 E1 , E2 ,还不错的题,中等难度。写完E2比赛已经快结束了,就没看F。不出意外这个小号要上黄了。 upd:确实上黄了。 7.2 低效的一天。顺便聊聊后面的计划 上午补了昨天做的div3 E2的题解。又学习了一下昨晚比赛的 F 。我的写法分类讨论非常麻烦(有100多行纯粹是 if 的嵌套,缩进缩到没法看的那种)

个人作业——软件工程实践总结&个人技术博客

元气小坏坏 提交于 2020-08-05 02:55:10
这个作业属于哪个课程 2020春-S班(福州大学) 这个作业的要求在那里 个人作业——软件工程实践总结&个人技术博客 这个作业的目标 软件工程实践总结 作业正文 作业正文 其他参考文献 《构建之法》 回望 对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么? 专业能力 对比与课程开始前,我认为自己在专业能力方面达到了自己期待的目标。自己开始的时候没有什么项目开发的能力和经验,经历了这次实践的锻炼,不仅会使用spring boot框架进行项目开发,也明白了前后端的交互方式,JSON 数据格式,了解并会使用JWT进行身份/权限验证等许多新知识,对软件工程的流程有了更为清晰直观的认知,同时还回顾了之前掌握的不好的web和数据库知识,觉得自己专业能力方面学到了很多。不足的方面是自己在本次课程中主要完成的是后端的开发和前后端数据交互部分,因为数据交互是直接使用ajax来进行没有去学习了解前端的技术框架,觉得自己以后需要去了解一下前端的主流技术框架。 管理沟通能力 在本次课程的团队作业中我担任了小组长一职,由于自己以前有过学生工作经历,所以在小组计划管理安排上还是比较顺利,这次团队合作主要是是让我看到了自己在活跃小组氛围方面的能力有所欠缺,还需要努力改进。 其他能力

本地启动 NameServer 和 Broker | 读 RocketMQ 源码前的准备工作

情到浓时终转凉″ 提交于 2020-08-05 02:46:32
clone 并导入源码 本地启动 NameServer 本地启动 Broker 本地运行生产者与消费者代码 完成上述步骤之后,RocketMQ的源码环境就搭建完毕了,之后就可以在本地启动以及收发消息,调试和分析RocketMQ的源码了。 clone 并导入源码 在 github 上选择对应的的代码 https://github.com/apache/rocketmq/tree/rocketmq-all-4.7.0,将其 clone 下来,再切出 4.7.0 版本的源码。Clone 到本地之后,用 IDEA 打开项目。 项目结构 模块 作用 broker Broker 相关代码 client Producer、Consumer 客户端代码,用于生产消息、消费消息 common 公共代码 dev 开发相关的信息 distribution 部署相关,比如配置文件 example 例子 filter 过滤器 logappender 日志相关 logging 日志相关 namesvr NameServer openmessaging 开放消息标准 remoting 远程网络通信,基于 netty 实现 srvutil 工具类 store 消息如何在 Broker 中进行存储相关代码 style 代码检查 test 测试 tools 命令行监控 本地启动 NameServer

Git 高级用法,喜欢就拿去用!

安稳与你 提交于 2020-08-05 01:49:42
如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的! 请注意我有意跳过了 git commit 、 git pull/push 之类的基本命令,这份小抄的主题是 git 的一些「高级」用法。 导航 —— 跳到之前的分支 git checkout - 查看历史 # 每个提交在一行内显示 git log --oneline # 在所有提交日志中搜索包含「homepage」的提交 git log --all --grep='homepage' # 获取某人的提交日志 git log --author="Maxence" 哎呀:****之前重置了一个不想保留的提交,但是现在又想要回滚? # 获取所有操作历史 git reflog # 重置到相应提交 git reset HEAD@{4} # ……或者…… git reset --hard <提交的哈希值> 哎哟:****我把本地仓库搞得一团糟,应该怎么清理? git fetch origin git checkout master git reset --hard origin/master 查看我的分支和 master 的不同 git diff master..my-branch 定制提交 # 编辑上次提交 git commit --amend -m "更好的提交日志" # 在上次提交中附加一些内容,保持提交日志不变git add

艺术鬼才!Unicode 字符还能这么玩?

我只是一个虾纸丫 提交于 2020-08-05 01:20:40
上周的时候,朋友圈的直升飞机不知道为什么就火了,很多朋友开着各种花式飞机带着起飞。 还没来得及了解咋回事来着,这个直升飞机就🔥到的微博热搜。 后面越来越多人开来他们的直升飞机,盘旋在朋友圈上方。于是很多朋友开来他们的坦克,专打直升飞机,一轰一个准。 好了,说回正题! 程序员朋友应该都很熟悉 Unicode (万国码),它几乎包含世界上所有符号,比如组成直升飞机这几个特殊符号对应的 Unicode 码分别为: ps:推荐一个网站,可以根据符号搜对应的 Unicode 码: https://unicode.yunser.com/unicode 除了这些正常字符以外, Unicode 还包含着各种各样的奇葩字符。 奇葩字符 除了正常的我们熟知的文字以外, Unicode 中还有一些奇怪的文字,比如下面这些文字 除了这些奇怪文字以外, Unicode 还有一些奇葩的的符号。 例如下面一整套麻将牌: 一整套的扑克牌: 一整套国际象棋: 除了这些,通过组合符合,我们还可以造出各种各样的颜文字(๑•̀ㅂ•́)و✧、 另外 Unicode 还收录着我们常用的 Emoji 。 除了这些之外, Unicode 中还有一些特殊字符的,利用这些字符,我们还可以玩出很多有趣的骚操作。 组合字符 Unicode 有一类字符称为组合字符,它可以附加在前一个非组合字符上,从而使整体看起来像是一个字符。

IntelliJ IDEA 中 Git 修改服务器地址的方法

我的梦境 提交于 2020-08-05 01:14:58
git服务器换地址之后,本地代码不动,改改git的地址,就把服务器由a换到b了 remotes:远程;遥控器,,,翻译出来的意思 修改项目的服务器地址,之后就和新的git服务器地址关联了。 再更新的时候,需要再次验证一下账号密码,就OK了。 来源: oschina 链接: https://my.oschina.net/u/4364022/blog/4273686

个人作业——软件工程实践总结&个人技术博客

爱⌒轻易说出口 提交于 2020-08-05 00:49:32
这个作业属于哪个课程 2020春-S班(福州大学) 这个作业的要求在那里 个人作业——软件工程实践总结&个人技术博客 这个作业的目标 软件工程实践总结 作业正文 作业正文 其他参考文献 《构建之法》 回望 对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么? 专业能力 对比与课程开始前,我认为自己在专业能力方面达到了自己期待的目标。自己开始的时候没有什么项目开发的能力和经验,经历了这次实践的锻炼,不仅会使用spring boot框架进行项目开发,也明白了前后端的交互方式,JSON 数据格式,了解并会使用JWT进行身份/权限验证等许多新知识,对软件工程的流程有了更为清晰直观的认知,同时还回顾了之前掌握的不好的web和数据库知识,觉得自己专业能力方面学到了很多。不足的方面是自己在本次课程中主要完成的是后端的开发和前后端数据交互部分,因为数据交互是直接使用ajax来进行没有去学习了解前端的技术框架,觉得自己以后需要去了解一下前端的主流技术框架。 管理沟通能力 在本次课程的团队作业中我担任了小组长一职,由于自己以前有过学生工作经历,所以在小组计划管理安排上还是比较顺利,这次团队合作主要是是让我看到了自己在活跃小组氛围方面的能力有所欠缺,还需要努力改进。 其他能力