线程同步

线程同步的工具

  • 原子操作
    原子操作是同步简单的形式。它处理简单的数据类型。原子操作的优势它们不妨碍竞争的线程。
  • 内存屏障和Volatile

  • 锁是最常用的同步工具。你可以是使用锁来保护临界区(critical section),这些代码段在同一时间只能允许被一个线程访问。
    Lock
    Mutex(互斥锁)
    Recursive lock(递归锁)
    Read-write lock(读写锁)
    Distributed lock (分布锁)
    Spin lock(自旋锁)
    Double-checked lock(双重检查锁)
  • 条件
    条件是信号量的另外一个形式,它允许在条件为真的时候线程间互相发送信号。
    条件通常被使用来说明资源可用性,或用来确保任务以特定的顺序执行。当一个线程测试一个条件时,它会被阻塞直到条件为真。它会一直阻塞直到其它线程显式的修改信号量的状态。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 引用自多线程编程指南应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改同一资源有...
    Mitchell阅读 6,067评论 1 7
  • 线程同步概念想要解决的问题? 应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改...
    faterman阅读 3,935评论 0 0
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 9,120评论 0 11
  • 概念 线程同步的方法有多种,互斥量、信号量、条件变量、读写锁等。互斥量在允许或阻塞对临界区的访问上是很有效的,线程...
    蓝雪冬荷阅读 4,702评论 0 3
  • 一、线程同步问题的产生及解决方案 问题的产生:Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时...
    Android进阶与总结阅读 3,805评论 1 10