Java多线程

在java中,多线程一直是代表着高级

线程安全性

线程安全需要考虑操作的自己状态的原子性,竟态条件,复合操作

保证线程安全通过保证原子性,加锁

但要考虑这样做后程序的活跃性哥性能

内置锁(synchronized)

Java提供了一种内置的锁机制来支持原子性,同步代码块(synchronized block),每个java对象都可以用作同一个实现同步的锁。

对象的共享

如果无法保证数据的原子性,在多线程环境中可能导致失效数据(数据被别的线程修改)。

在java中,long类型和double类型不是线程安全的,因为它们在虚拟机中分为两个34位数据进行操作

类的逸出,当在类的构造器中有可被发现的状态,那么这个类可能逸出,因为它会在还没构造完成前被调用。

Final域不一定是线程安全的,因为它的对象可能是一个非线程安全的引用。

你可能感兴趣的:(Java多线程)