首页 > 其他分享 >synchronization(同步)

synchronization(同步)

时间:2024-04-19 12:35:31浏览次数:20  
标签:同步 并发 synchronization 线程 Linux 进程 交互

并发进程之间的关系

  1. 在内存中同时存在的若干个进程/线程,由操作系统的调度程序采用适当的策略将他们调度至cpu上运行,同时维护他们的状态队列。
  • 多个并发进程/线程从宏观上是同时在运行;
  • 从微观的角度看,他们的运行过程是走走停停;
  • 并发的进程/线程是交替执行(Interleaving);
  • Linux 操作系统中的进程和线程是有区别的,但 Linux 采用了一种独特的方式来处理它们,这种方式与其他操作系统(如 Windows)不同。在 Linux 中,进程(Process)和线程(Thread)都是通过任务(task)来实现的。Linux 使用了一个统一的任务结构体 task_struct 来表示进程和线程。这意味着,从内核的角度看,进程和线程都是任务,但它们的行为和属性有所不同。
  1. 并发进程之间的关系
  • 独立关系
    • 并发进程分别在自己的变量集合上运行
  • 交互关系
    • 并发进程执行过程中需要共享或是交换数据
    • 交互的并发进程之间又存在着竞争和协作的关系
      • 这句话的意思是在涉及多个并发进程的系统中,这些进程之间不仅会相互竞争资源(如CPU时间、内存等),同时也需要相互协作,以完成一些共同的任务或目标。简单来说,就是这些并发运行的进程在争夺资源的同时,还需要通过某种方式(例如消息传递、信号量等)来协同工作,以确保整个系统的高效和协调运行。

竞争与协作

  1. 竞争(RACE condition)
  2. 协作(cooperation)
  • 有数据交互。

异步与同步

  1. 异步
  • Asynchronous means RANDOM
  • 异步是随机的。,因为交替执行产生的一种错误,结果不确定对不对
  • 会引发竞争条件(Race Condition):一种这样的情况:多个进程并发操作同一个数据导致执行结构依赖于特定的进程执行顺序。
  1. 同步
  • (同步是在进程之间有数据交互共享的变量,需要做一个同步,就是一方还没做完一件事情,另一方还需要waiting)
  • Process Synchronization means a mechanism(机制) to maintain the consistency(一致性) of data shared in cooperative(合作) processes.
  • synchronization tool kits
    • mutex lock(互斥锁):解决竞争问题
    • Semaphore(信号量)

标签:同步,并发,synchronization,线程,Linux,进程,交互
From: https://www.cnblogs.com/zhudachang/p/18145074

相关文章

  • GPS北斗卫星同步时钟(卫星授时服务器)的主要特点
    GPS北斗卫星同步时钟(卫星授时服务器)的主要特点 GPS北斗卫星同步时钟(卫星授时服务器)的主要特点 京准电子科技官微——ahjzsz卫星授时服务器是一种用于提供高精度时间信息的服务器,通常通过网络分发时间信息给其他设备和系统;以下是时间同步服务器的主要特点:高精度:卫星授时服务......
  • 基元线程同步构造
    一、基元(一)概述基元指的是在代码中可以使用的最简单的构造。基元是指编程中最基本、最简单的构造或元素,可以直接在代码中使用。基元通常是编程语言中的原始数据类型或基本操作符,用于构建更复杂的数据结构和算法。举例来说,对于C#编程语言,基元可以包括整型(int)、浮点型(float)......
  • 如何实现数据库数据到Abp vnext实体对象的同步?以及代码生成工具
    在采用了EFCore的CodeFirst方式下,如果你在数据库中直接添加了新表或存储过程,你需要在项目代码中手动反向工程这些数据库的更改,以保持CodeFirst的代码与数据库同步。这种情况可以通过如下两个步骤来实现:从现有数据库创建模型:使用EntityFrameworkCore的Scaffold-DbContext......
  • 活动报名 | 如何进行全增量一体的异构数据库实时同步
    伴随着新技术的不断涌现,市场竞争也在不断开辟新的角斗场——新的业务需求,新的应用设想都在这里迸发。面对如此日新月异的竞争环境,企业的当务之急,是为新应用扎根准备好随时可取、准确一致的高质量数据土壤。在这样的背景下,很多传统关系型数据库的限制性开始显现。出于提高性能、......
  • java多线程 读取变量同步安全的案例
    本次介绍,我使用的是synchronized同步代码块的关键字来读取list,在写java多线程时,一定要注意synchronized关键字的有效范围。ps:如果synchronized关键字的代码块范围太大,可能会导致优先获取到cpu资源的第一个线程在满足条件的情况下一直无法跳循环,从而使得其他线程无法给获......
  • ETL快速同步 用友u8数据方式
    在企业信息化进程中,用友U8作为一款广泛应用的ERP系统,承载着企业核心业务数据。为了实现这些数据的有效利用与深度分析,往往需要通过ETL(Extract, Transform, Load)工具进行快速、准确的数据同步。本文将详细阐述ETL快速同步用友U8数据的工具集成方式,以期为企业数据整合与决策支持提......
  • Linux系统时间与硬件时钟同步
    由于机房没做时间同步服务器,就只能依赖机器的时钟固件了。服务器断电后,服器内置的BIOS芯片的小电池也会继续供电,在硬件时钟层面持续记录时间(需要电池有电)。假如硬件时间与实际时间不一致,硬件时间存储的CST时间(应该存储UTC),断电重启后系统会读取硬件时间作为系统时间,导致系统时间快......
  • MYSQL 主从同步失败:Slave_SQL_Running: No
    SHOWSLAVESTATUS\G;显示Slave_SQL_Running:No 解决方法:从主服务器查询:  SHOWMASTERSTATUS在从服务器上:changemastertomaster_host='169.254.60.151', #主库的IP地址master_user='slave', #在主库上创建的复制账号master_password='???????',......
  • MySQL的CDC数据实时同步
    MySQL的CDC数据实时同步 背景近段时间,业务系统架构基本完备,数据层面的建设比较薄弱,因为笔者目前工作重心在于搭建一个小型的数据平台。优先级比较高的一个任务就是需要近实时同步业务系统的数据(包括保存、更新或者软删除)到一个另一个数据源,持久化之前需要清洗数据并且构建一......
  • Linux使用ntp时间服务器同步时间
    NTP时间同步服务器是一种基于网络的时间同步协议,它的全称是NetworkTimeProtocol,NTP的主要功能是通过互联网将计算机的系统时间同步到标准的时间服务器上,以确保在分布式系统中的所有计算机都能有一个统一、准确的时间。一、使用ntp时间服务yumintall-yntp 二、启动并设......