Kotlin协程学习随笔之线程安全

438 阅读1分钟

Kotlin在Android上的协程本质上还是通过线程实现的,所以多线程存在的线程安全问题,协程同样存在。那么协程如何解决此问题?

1.得益于kotlin的协程调度器,可以非常简单的实现线程切换,所以可以将需要并发执行的代码切换到同一个线程中执行,这样代码始终是在同一线程中执行,就不存在线程安全问题

2.kotlin提供了Mutex来作为java中ReentrantLock的替代品,使用方法也和ReentrantLock类似,mutex.lock(); try { …… } finally { mutex.unlock() },也可以使用更简单的扩展函数mutex.withLock{}