首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏mini188

    学习笔记: Delphi之线程类TThread

    TThread-简单的开始 在Delphi的VCL中封装了一个TThread类用于多线程的开发,这样比较符合面向对象的思想,同时又可以提高开发效率,一般的情况下开发都是通过派生这个类来实现多线程。 所以重点还在这个类TThread上: 简单的看一眼,这个类倒也简单,就是封装了线程的API,通过一个ThreadProc函数来完成了多线程整个过程。 很容易就能派生一个线程类: TMyThread = class(TThread) private FCount: Integer; FOnShowValue: TGetStrProc 线程终止 在Delphi的TThread类实现中,可以通过一个Terminate方法来让线程终止。但事实上Terminated只是一个标识而已,在线程启动时这个标识为False。 ThreadProc-源代码分析 function ThreadProc(Thread: TThread): Integer; var FreeThread: Boolean; begin {$IFDEF

    2.7K80发布于 2018-01-12
  • 来自专栏吉林乌拉

    ReentrantLock类与Condition类的结合使用

    await() { try { lock.lock(); System.out.println(String.format("线程开始\tthread } public void signal() { lock.lock(); System.out.println(String.format("线程恢复\tthread ) { try { lock.lock(); System.out.println(String.format("await1线程开始\tthread ) { try { lock.lock(); System.out.println(String.format("await2线程开始\tthread public void signalAll() { lock.lock(); System.out.println(String.format("恢复所有线程\tthread

    2K20发布于 2019-08-14
  • 来自专栏Eureka的技术时光轴

    【Delphi】 Thread.Queue与Synchronize的区别

    前话: 其实大家要学会看源码, 我接下来要说的这些东东,与其等别人讲,还不如自己搞几个代码试一下,印象还深刻点 TThread.Queue和TThread.Synchronize的区别, 效果上 :二者的作用都是让业务代码在主线程中执行,差别: Synchronize是阻塞,Queue是非阻塞 代码上 两个方法最终都是调用的 class procedure TThread.Synchronize QueueEvent: Boolean = False)类方法, 差别 Synchronize则是使用了Thread对象中的FSynchronize对象变量,然后QueueEvent为False来调用TThread.Synchronize Queue调用是自己创建了一个PSynchronizeRecord, 然后QueueEvent为True来调用TThread.Synchronize类方法,内部则把PSynchronizeRecord放入 interfaceuses =Classes, Messages,Windows,SysUtils; const MAX_LEN = 260; typeTChildThreads = class(TThread

    2.3K21发布于 2019-07-24
  • 来自专栏Eureka的技术时光轴

    VCL线程的同步方法 Synchronize(用消息来同步)

    这样的程序将会非常难于调试,因为消息的来源实在太多了   其次,由于 VCL只用一个线程来访问它,那些用于把线程同步的代码就可以省略了,从而改善了应用程序的性能 3.Synchronize() 方法 在 TThread 29 30 31 32 33 34 35 36 37 unit ThrdU; interface uses Classes; type TTestThread = class(TThread 此窗口唯一的目的是把通过Synchronize() 调用的方法排队   Synchronize() 把由Method 参数传递过来的方法保存在 TThread的 FMethod字段中,然后,给线程窗口发送一个 、 4.用消息来同步   可以利用在线程之间使用消息同步以替代 TThread.Synchronize() 方法。

    1.1K20发布于 2019-07-24
  • 来自专栏全栈程序员必看

    Delphi 跨平台_delphi调用api接口

    下面再以线程类TThread为例: TThread = class private type PSynchronizeRecord = ^TSynchronizeRecord; TSynchronizeRecord

    2.8K20编辑于 2022-08-04
  • 来自专栏大数据架构

    Java进阶(三)多线程开发关键技术

    Thread.sleep(2000); } catch (Exception ex) { } System.out.println(new Date() + "\tThread Thread.sleep(2000); } catch (Exception ex) { } System.out.println(new Date() + "\tThread = readWriteLock.writeLock(); lock.lock(); try { System.out.println(new Date() + "\tThread catch (Exception ex) { ex.printStackTrace(); } System.out.println(new Date() + "\tThread catch (Exception ex) { ex.printStackTrace(); } System.out.println(new Date() + "\tThread

    55440发布于 2018-06-19
  • 来自专栏全栈程序员必看

    delphi 进程通信_多线程实现java

    3、多线程用TThread类以及Uses syncobjs后使用的 TCriticalSection (临界区),TMutex(互斥体),TSemaphore (信号对象,D2009才开始有),TEvent (事件对象)很多都是引用了API的方法进行了一定的简化,不过也有部分功能的缺失,如Event (事件对象)缺少了启动步进一次后暂停的功能,不过基本在同步上已经够用了,另外在TThread类声明的Execute

    55540编辑于 2022-11-15
  • 来自专栏大数据架构

    Java进阶(三)多线程开发关键技术

    ) -> { readWriteLock.readLock().lock(); try { System.out.println(new Date() + "\tThread ) -> { readWriteLock.readLock().lock(); try { System.out.println(new Date() + "\tThread readWriteLock.writeLock(); lock.lock(); try { System.out.println(new Date() + "\tThread Exception ex) { ex.printStackTrace(); } System.out.println(new Date() + "\tThread (); new Thread(() -> { lock.lock(); try { System.out.println(new Date() + "\tThread

    1.1K180发布于 2018-05-11
  • 来自专栏包子的书架

    C++ CreateThread的使用

    ResumeThread 和 SuspendThread 分别对应 TThread 的 Resume 和 Suspend 方法, 很好理解. 4、参数4:函数参数 线程入口函数的参数是个无类型指针(Pointer 后来换了个思路, 其实很简单: 在线程函数中再调用方法不就得了, 估计 TThread 也应该是这样. 不过还是尽量使用局部变量, 或者在继承 TThread 时使用类的成员变量, 因为 ThreadVar 的效率不好, 据说比局部变量能慢 10 倍. 7、参数1:安全设置 CreateThread 的第一个参数

    1.5K30发布于 2020-06-17
  • 来自专栏Eureka的技术时光轴

    如何解决在DLL的入口函数中创建或结束线程时卡死

    procedure DLLEntryPoint(Reason:DWord); begin case Reason of DLL_PROCESS_ATTACH: TThread.CreateAnonymousThread procedure begin StartMyThreadsAndWaitBegin(); end).Start; DLL_PROCESS_DETACH: TThread.CreateAnonymousThread

    5.9K10发布于 2019-07-24
  • 来自专栏全栈程序员必看

    c++预编译头文件_VJVJ X27s 智能安卓手机

    因此,TThread对象提供了一个Synchronize方法,当需要在线程中访问VCL对象属性或调用方法时,通过Synchronize方法来访问属性或调用方法就能避免冲突,使各个线程之间协调而不会产生意外的错误

    52240编辑于 2022-11-09
  • 来自专栏微卡智享

    delphi提示“Undeclared identifier”的缺少引用单元列表

    Classes TStrings Classes TStringStream Classes TSystemTime Windows TTable DBTables TTabSheet ComCtrls TThread

    2.7K20发布于 2019-07-25
  • 来自专栏python3

    Python进程/线程/协程相关

    .' % (threading.get_ident(), taskid, sleepTime)) time.sleep(sleepTime) #睡觉任务 print('\t\tthread_%05d

    46720发布于 2020-01-06
  • 来自专栏mini188

    博客目录及索引,欢迎指导交流

    Delphi多线程应用读写锁 技术笔记:Indy控件发送邮件 学习笔记:7z在delphi的应用 学习笔记 :DrawText 学习笔记:delphi之TStringGrid 学习笔记: Delphi之线程类TThread

    2.3K90发布于 2018-01-12
  • 来自专栏mini188

    学习笔记:delphi多线程知识

    后来在看TThread的代码时发现新的Delphi版本中有了一个好东西:TMnitor try TMonitor.Enter(ThreadLock); try SyncProcPtr.Queued

    1.6K60发布于 2018-01-12
  • 来自专栏Lua学习笔记

    Lua源码学习笔记-从TValue开始的数据类型

    LUA_TTABLE5 //表类型#define LUA_TFUNCTION6 //函数类型#define LUA_TUSERDATA7 //void*,内存由luaGC管理,有自己的元表#define LUA_TTHREAD8

    27900编辑于 2025-08-08
  • 来自专栏Eureka的技术时光轴

    CreateProcess时不显示或者不创建窗口 (或用虚拟桌面实现后台调用外部程序)

    不好意思,我对这个“干净”的理解就是一个新的线城,于是抱着试一试的心情,我写下了: TFindWindowThread = class(TThread) private FDesktop

    4.9K30发布于 2019-07-24
  • 来自专栏python3

    python日志处理模块

    /usr/bin/python3.6 #conding:utf-8 import threading import time FORMAT="%(asctime)-15s\tThread Name: /usr/bin/python3.6 #conding:utf-8 import threading import time FORMAT="%(asctime)-15s\tThread Name: /usr/bin/python3.6 #conding:utf-8 import threading import time FORMAT="%(asctime)-15s\tThread Name:

    84710发布于 2020-01-03
  • 来自专栏翎野君

    Java进程和线程

    */ YieldTest yt=new YieldTest(); Thread t=new Thread(yt); TThread tt=new TThread t.start(); tt.start(); //线程让步,谁调用了yield()谁就回退到线程就绪状态 TThread.yield for(int i=0;i<100;i++){ System.out.println("Thread--1 "+i); } } } class TThread

    1K50编辑于 2023-05-12
  • 来自专栏格物致知

    Lua类型系统详解(一)

    LUA_TSTRING 4 #define LUA_TTABLE 5 #define LUA_TFUNCTION 6 #define LUA_TUSERDATA 7 #define LUA_TTHREAD

    1.3K10编辑于 2022-08-19
领券