美文网首页
线程同步的4种方式

线程同步的4种方式

作者: 宇宙之一粟 | 来源:发表于2020-09-07 23:54 被阅读0次

4. 线程同步的方式✭✭✩✩✩

想想线程的特点,因为不同线程会共享资源。比如:同一个账户,A线程读,B线程取,这样可能会发生冲突,所以需要同步来避免麻烦。

竞争的方式有两种:代码竞争和数据竞争。代码竞争指多线程环境下,同一时刻两个线程都在同一段代码上。数据竞争指的是两个线程同时访问一个数据。

线程同步是两个或多个共享关键资源的线程的并发执行。同步的作用就是避免关键资源的使用冲突。

同步的方式:(4种)

  1. 临界区(Critical section):通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任何时候只允许一个线程访问共享资源,如果有多个线程访问,那么当有一个线程进入后,其他试图访问共享资源的线程将会被挂起,并且等到进入临界区的线程离开,临界在被释放后,其他线程才可以抢占。

  2. 互斥量(Mutex):为协调对一个共享资源的单独访问而设计。互斥量只有一个,只有拥有互斥量的线程,才有权限去访问系统的公共资源,保证资源不会被多个线程访问。互斥不仅能实现同一个应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享。

    比如 Java 中的 synchronized 关键词和各种 Lock 都是这种机制。

  3. 信号量(Semphore):为控制一个具有有限数量的用户资源而设计。它允许多个线程在同一时刻去访问同一个资源,但一般需要限制同一时刻访问此资源的最大线程数目。

  4. 事件(Event):用来通知线程有一些事件已发生,从而启动后继任务的开始。

相关文章

  • 线程的基本语法

    线程同步[解决线程安全问题] 解决线程安全问题 线程同步方式一:同步代码 语法基本 synchronized (同...

  • java同步线程(三)

    **java同步线程(三)** 基本实现方式及同步原理---释放同步监视器的锁定任何线程进入同...

  • 线程同步方式

    今天给大家介绍一下线程同步有哪些方式: 同步方法 给方法加上synchronized关键字,同步方法的锁是this...

  • Java多线程(四)使用synchronized锁实现线程同步

    本篇本章主要介绍以synchronized关键字的方式实现线程同步,以及线程间的通信。 为什么要用线程同步####...

  • 2020-07-02【多线程】

    进程 线程 多线程的实现方式1 设置/获取线程名称 线程调度 线程控制 线程生命周期 多线程实现方式2 练习 同步...

  • Linux 多线程 - 线程异步与同步机制

    Linux 多线程 - 线程异步与同步机制 I. 同步机制 线程间的同步机制主要包括三个: 互斥锁:以排他的方式,...

  • iOS-线程同步详解

    原文发表在个人博客iOS-线程同步详解,转载请注明出处。 本文对iOS系统上的线程的同步方式进行了讲解。 同步工具...

  • iOS:常见的锁

    加锁是为了防止多条线程同时访问同一块内存,也就是为了线程同步。实现线程同步不仅仅只有加锁的方式,也可以通过 同步串...

  • 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别

    进程同步与互斥的区别? 进程的同步方式有哪些? 进程的通信方式有哪些? 进程同步与通信的区别是什么? 线程的同步/...

  • OpenMP多线程——Parallel for

    多线程——线程同步 数据竞争问题 线程互斥同步——critical 线程互斥同步——atmoic 线程互斥同步——...

网友评论

      本文标题:线程同步的4种方式

      本文链接:https://www.haomeiwen.com/subject/tqwrektx.html