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

delphi 进程通信_多线程实现java1 多线程总体认识 当前程序是一个进程 进程只是一个工作环境 线程是工作者 每个进程都会有一个启动线程 或叫主线程 也就是说 大量的编码都是写给这个主线程的 ExitThread 0 退出主线程 系统不允许一个没有线程的进程存在 所以程序就退出了 ExitThread 函数的参数是一个退出码 这个退出码是给之后的其他函数用的 这里随便给个无符号整数即可 2

1、多线程总体认识

当前程序是一个进程, 进程只是一个工作环境, 线程是工作者;

每个进程都会有一个启动线程(或叫主线程), 也就是说: 大量的编码都是写给这个主线程的;

ExitThread(0); 退出主线程;

系统不允许一个没有线程的进程存在, 所以程序就退出了.

ExitThread 函数的参数是一个退出码, 这个退出码是给之后的其他函数用的, 这里随便给个无符号整数即可.

2、 VCL实现同步的另一种方法就是调用线程类的Synchronize的过程,此过程需要一个无参数的procedure,故在此procedure中无法传递参数值,但可以通过类的成员来实现。在类的Execute中只须调用Synchronize就可以了。

实现:

关键在于对Synchronize参数的定义。定义一个无参数的procedure通过它来访问类的成员变量szName和nIndex。在类的重载Execute中调用Synchronize。

3、多线程用TThread类以及Uses syncobjs后使用的 TCriticalSection (临界区),TMutex(互斥体),TSemaphore (信号对象,D2009才开始有),TEvent (事件对象)很多都是引用了API的方法进行了一定的简化,不过也有部分功能的缺失,如Event (事件对象)缺少了启动步进一次后暂停的功能,不过基本在同步上已经够用了,另外在TThread类声明的Execute过程里,加上FreeOnTerminate := True;这句会让线程执行完后自动释放,还可以把功能代码的方法套在Synchronize()里,用于同步一些非线程安全的控件对象,避免多个线程同时对一个对象操作引发的问题。

编程小号
上一篇 2025-01-26 17:27
下一篇 2025-03-02 14:01

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/125518.html