
1 多线程下为什么会存在线程安全问题
线程的合理使用能够提升程序的处理性能,一是能够利用多核 CPU 来实现线程的并行执行,二是线程的异步化执行能够提高系统的吞吐量。
虽然线程有这些优点,但同时也带来了很多问题。比如说:
1.1 共享变量带来的安全性问题
先来看个图:

一个变量 i ,如果线程 A 或者线程 B 单独访问并且修改变量 i 的值没有任何问题,那如果并行的修改变量 i ,那就会有安全性问题。
然后用代码来模拟一下这种场景,为了更好的看到效果,我用100个线程:
public class ThreadDemo1 { private static int i = 0; public static void inc() { try { Thread.sleep(1);&

本文探讨了多线程环境下线程安全问题的原因,重点介绍了Java中Synchronized关键字的作用和用法,包括其作为锁的机制、三种加锁方式,并通过实例展示了如何解决共享变量并行修改导致的安全问题。
最低0.47元/天 解锁文章
538

被折叠的 条评论
为什么被折叠?



