2021年十月,我和父母驱车去桐庐玩了3天。为什么地点选择桐庐?首先风景优美。桐庐为杭州下辖县,富春江畔,山峦重叠,又有古村坐落于山川之间,可谓...
在之前的例子中,线程执行的任务,在Runnable对象中定义,和线程,在Thread对象中定义,两者之间总是有一种密切的关联。这样的机制对小型应...
到目前为止,本课程一直都专注于底层次的API——从非常早开始就一直是JAVA平台的组成部分。这些API对于解决一些基本问题是非常足够的,但是为了...
如果一个对象的状态在它构建之后就不能被更改,我们就认为它是不可更改的对象。对不可更改对象的最大限度的依赖被广泛认为是一种建立简单、可信赖代码的好...
线程通常需要协调它们的动作。最常见的协调方法是被守护的代码块。这样的代码块以在代码块执行之前,对一个总是为真的条件进行轮询。为了能正确完成它,需...
一个并发线程能够在一定时间内执行完成的能力被成为活性。这一节介绍了最常见的活性问题,死锁,并介绍了另外两种活性问题——饥饿和活锁。 死锁 死锁描...
在编程中,一个原子操作是指能一次发生的动作。一次原子操作不能被中途打断:它要么完全执行,要么根本不执行。原子操作的副作用必须在它结束之后,才能看...
同步是在被称为内部锁或者管锁的内部实体上建立起来的。内部锁在同步的两个方面都扮演了重要的角色:加强对一个对象状态互斥的进入,以及建立对可见性很重...
JAVA编程语言提供了两种基本的同步做法:同步方法和同步语句。其中更为复杂的同步语句会在之后的章节讲。这个章节是关于同步方法的。 想要让一个方法...