Skip to content

Commit d7fa8be

Browse files
author
guanzhenxing
committed
多线程
1 parent 8475617 commit d7fa8be

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

java-basic/multithread.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,12 @@ CyclicBarrier可重用,CountDownLatch不可重用,计数值为0该CountDownL
315315

316316
不是线程安全的操作。它涉及到多个指令,如读取变量值,增加,然后存储回内存,这个过程可能会出现多个线程交差
317317

318+
## 有三个线程T1,T2,T3,怎么确保它们按顺序执行?
319+
320+
在多线程中有多种方法让线程按特定顺序执行,你可以用线程类的join()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续执行。为了确保三个线程的顺序你应该先启动最后一个(T3调用T2,T2调用T1),这样T1就会先完成而T3最后完成。
321+
322+
## 如何在Java中创建Immutable对象?这个问题看起来和多线程没什么关系, 但不变性有助于简化已经很复杂的并发程序。Immutable对象可以在没有同步的情况下共享,降低了对该对象进行并发访问时的同步化开销。可是Java没有@Immutable这个注解符,要创建不可变类,要实现下面几个步骤:通过构造方法初始化所有成员、对变量不要提供setter方法、将所有的成员声明为私有的,这样就不允许直接访问这些成员、在getter方法中,不要直接返回对象本身,而是克隆对象,并返回对象的拷贝。我的文章how to make an object Immutable in Java有详细的教程,看完你可以充满自信。
323+
318324
## 你有哪些多线程开发良好的实践?
319325

320326
- 给线程命名

0 commit comments

Comments
 (0)