zoukankan      html  css  js  c++  java
  • Delphi 线程中的 Synchronize 和 临界区TCriticalSection 区别

    Delphi 线程中的 Synchronize 和 临界区 TCriticalSection 的 区别

    相同点:都是阻止其他线程执行,保证当前执行线程安全。

    不同点

    Synchronize:会判断此线程是否结束,如果没有结束,继续执行当前线程,中间会停顿几秒,不会继续执行其他线程,

    临界区:会记录线程队列,等上一个线程结束,再执行下一个线程。

    Synchronize 即不允许别一个线程来调用这个函数,避免多个子线程同时访问该线程资源。

      1、如果是将数据同步回主线程,如果过程没有执行完,主窗体(线程)会阻塞(卡主), 即 避免多个子线程同时访问主线程资源。

      2、如果是将数据同步回子线程,即相当于阻止其他线程访问当前执行的线程。

    为什么要有 Synchronize ?

    Synchronize 经常用在子线程与主线程的资源交互上,如果不采用 Synchronize 则会出现,线程执行完后和主线程的交互上会出现问题。

    例如:线程中创建线程,线程中创建进程,线程中创建窗体。

    本区别解释归本博客,如有不对,请指正。

    创建时间:2020.02.25  更新时间:2020.02.27

  • 相关阅读:
    反射-基础方法-java
    排序-插入-java
    排序-选择-java
    决策树
    python基础2 -画图
    python基础1
    如何实现用户的历史记录功能(最多n条)
    如何让字典保持有序
    如何快速找到多个字典中的公共键(key)
    如何根据字典中值的大小, 对字典中的项排序
  • 原文地址:https://www.cnblogs.com/guorongtao/p/12362307.html
Copyright © 2011-2022 走看看