代老师的博客 https://github.com/daichangya

归档

2020 年 04 月

Java sleep()和wait()–讨论 sleep()是一种用于暂停该过程几秒钟或我们想要的时间的方法。但是在使用wait()方法的情况下,线程进入等待状态,直到我们调用notify()or ,线程才会自动返回notifyAll()。 主要区别在于等待wait()时sleep()不释放锁定或监视器,而等待时不释放锁定或监视器。wait()通常用于线程间通信,而sleep()通常用于引入执行暂停。 Thread.sleep()将当前线程发送到“ Not Runnable ”状态一段时间。该线程保留已获取的监视器,即,如果该线程当前在某个synchronized块或方法中,则没有其他线程可以进入该块或方法。如果另一个线程调用t.interrupt()。它将唤醒睡眠线程。 While sleep()是一种static方法,这意味着它始终会影响当前线程(正在执行sleep方法的线程)。一个常见的错误是调用t.sleep()where t是另一个线程。即使这样,当前线程也会进入休眠状态,而不是t线程。
Markdown basic-syntax Markdown 基础 语法 使用
sleep执行后线程进入阻塞状态 yield执行后线程进入就绪状态 join执行后线程进入阻塞状态==Thread.wait(0) main(){ threadA.join(); //等线程A执行完,(main)我再执行,我先等等wait(0) ............. }

2020-04-15

一个Java5中最好添加的是支持类,如原子操作AtomicInteger,AtomicLong等等。这些课程帮助您最大限度地减少复杂的(非必要)需要多线程的,如增加一些基本的操作代码或递减的值在多个线程之间共享。这些类在内部依赖于名为CAS(比较和交换)的算法。在本文中,我将详细讨论这个概念。1.O
Java.util.concurrent.atomic.AtomicReference是一个旨在以线程安全的方式更新变量的类。WhydoweneedtheclassAtomicReference?为什么我们不能简单地使用一个volatile变量?我们如何正确使用它?WhyAtomicReferenc
1.Overview在本文中,我们将研究java.util.concurrent包中的两个构造:LongAdder和LongAccumulator。两者都被创建为在多线程环境中非常高效,并且都利用非常巧妙的策略来实现无锁且仍保持线程安全。LongAdder让我们考虑一些逻辑,该逻辑经常增加一些值,而
1.Overview生成随机值是非常常见的任务。这就是Java提供java.util.Random类的原因。但是,此类在多线程环境中表现不佳。以简化的方式,在多线程环境中,Random性能不佳的原因是由于争用–假设多个线程共享同一个Random实例。为了解决该限制,Java在JDK7中引入了java
1.概述在没有必要的同步的情况下,编译器,运行时或处理器可能会应用各种优化。尽管这些优化在大多数情况下是有益的,但有时它们可​​能会引起一些细微的问题。缓存和重新排序是在并发上下文中可能使我们感到惊讶的优化措施之一。Java和JVM提供了许多方法来控制内存顺序,而volatile关键字就是其中一种。

2019 年 10 月

2019-10-28

Siege是一款高性能的Http压力测试工具。Siege支持身份验证、cookies、http、https和ftp协议。安装Siege如果要支持https,需要先下载安装openssl,下载地址:https://github.com/openssl/openssl1.开始安装opensslgitcl

2019 年 07 月

The basic syntax outlined in John Gruber’s original design document added many of the elements needed on a day-to-day basis, but it wasn’t enough for some people. That’s where extended syntax comes in. Several individuals and organizations took it upon themselves to extend the basic syntax by adding additional elements like tables, code blocks, syntax highlighting, URL auto-linking, and footnotes. These elements can be enabled by using a lightweight markup language that builds upon the basic Markdown syntax, or by adding an extension to a compatible Markdown

2019 年 06 月

20196.1  早上5点出发至天津机场。富余出两个小时,天津机场的儿童设施相当给力,解决了小朋友的无聊时间。小满同学3岁第一次飞,最喜欢的就是座椅前的屏幕,一直在研究,搞定后开始选自己喜欢的动画片。大约是在飞机减速时小满同学出现耳鸣现象开始哭闹,邻座的叔叔估计觉得小满的哭声太吵,找到空乘询问是否有

2019-06-12

提前2天在携程预订龙行天下的团队票。2019年10月4号9:10东四十条地铁C口出来就看到了候车的人群,随后根据手机短信提示的导游信息找到了随行导游。9:40在芍药居接上其他游客后,我们就开始前往景区。路上导游说现在谁都不能保证到达古北的准确时间,昨天下午3点才到达景区,但是与前两天相比已经是提前1

2019-06-12

2018年9月20家住南5环,7:30出门,1个小时后到达望京南D口出,和好友碰头,打算找866公交车前往怀柔汽车站。但是看到866终点站牌,我们像没头苍蝇似的在地铁口徘徊好久,愣是没找到始发站,问了路人才发现在终点站对过的车场里头排队上车。866发车倒是很快,大概50分钟的样子到达怀柔汽车站,我们

2019-06-12

这次北戴河之行,时间比较充裕,带上老人和孩子,没有安排太多的项目,也许是年龄大了,体力上有些倦怠,不像第一次来的时候那么打鸡血,骑车沿着海岸一直走,很少的时间回到宾馆休息。这次我们依然选的是第一次来北戴河居住的民宿。环境不是太好,胜在价格便宜,也相对安静。早上7:30的火车,9:30抵达北戴河站,出

2019-06-12

年近30的我第一次坐飞机。百感交集,有种说不出来的感觉,首先为坐飞机这件事情感到激动不已,再者为30年后自己才坐上飞机感到羞赧。于2018年6月10号抵达首都机场,自助换登机牌确实很便捷,行李托运。接着安检候机,机场的肯德基比外面的贵很多,但是机场的缘故,又饿,花了45块钱点了蔬菜沙拉、土豆泥和一杯
此次出行日本,我们选择了邮轮。出发点在上海吴淞口,身在北京的我们选择提前1天抵达上海。2017年9月12日我们高铁到达上海火车站,被扑面而来的香味所吸引,早就听说上海到处都是桂花树,但是没成想会这么的馥郁,再加上天空中蒙蒙细雨,让上海的空气格外的沁人心脾。酒店选的离火车站有2公里的车程,但是我们选择