Java多线程

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

线程安全性

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

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

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

内置锁(synchronized)

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

对象的共享

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。