基本概念
Java中的线程安全是什么意思?
多线程环境下,不会出现多个线程访问时造成数据的错误、丢失等不一致问题。
并行和并发
并行:在多处理器系统中同时执行多个任务。
并发:在单处理器系统中通过任务切换来实现某个时间段内的多个任务的“同时”进行。
同步和异步
同步操作需要等待任务完成后才能继续执行。
异步操作则不需要等待任务完成,可以继续执行其他任务,提高系统的效率。
线程安全实现方式
- 原子操作:不可分割的操作,避免了多线程同时修改数据的问题,例如 CAS 就是一个原子操作。
- 锁机制:如互斥锁、读写锁等,保证同一时刻只有一个线程能够访问共享资源。例如 synchronized 或者 ReentrantLock
- 并发控制:如信号量、条件变量等,控制线程的执行顺序来保证线程安全。例如 Semaphore、CountDownLatch。
大约 71 分钟