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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

 

1、多线程总体认识 

  1. 当前程序是一个进程, 进程只是一个工作环境, 线程是工作者;
  2. 每个进程都会有一个启动线程(或叫主线程), 也就是说: 大量的编码都是写给这个主线程的;
  3. ExitThread(0); 退出主线程;
  4. 系统不允许一个没有线程的进程存在, 所以程序就退出了.
  5. 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()里,用于同步一些非线程安全的控件对象,避免多个线程同时对一个对象操作引发的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234885.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jvm之指令重排_java指令重排

    jvm之指令重排_java指令重排引言:在Java中看似顺序的代码在JVM中,可能会出现编译器或者CPU对这些操作指令进行了重新排序;在特定情况下,指令重排将会给我们的程序带来不确定的结果…..1. 什么是指令重排?     在计算机执行指令的顺序在经过程序编译器编译之后形成的指令序列,一般而言,这个指…

    2022年8月31日
    2
  • (图文)最详细的XAMPP的安装及使用教程「建议收藏」

    (图文)最详细的XAMPP的安装及使用教程「建议收藏」XAMPP的安装及使用教程1、简介2、安装运行3、配置数据库XAMPP的安装及使用教程1、简介XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。这个软件包原来的名字是LAMPP,但是为了避免误解,最新的几个版本就改名为XAMPP了。它可以在Windows、Linux、Solaris、MacOSX…

    2022年7月27日
    10
  • idea打开工程无法运行java程序_如何运行一个java程序

    idea打开工程无法运行java程序_如何运行一个java程序有时候想运行别人的项目,但是别人的项目并非IDEA项目(甚至只有源码),当我们打开项目时候,并不能运行,我们却不知道怎么办。经过多次查找和尝试,最终终于能够运行起来了。记一下解决的方法。这是源码打开的项目首先,查看sdk是否设置了。可以在File=》ProjectStructure=》Project里面查看并设置。但是,设置后还是不可以运行。如下图:设置SDK…

    2022年9月29日
    2
  • SplitContainer 控件作用[通俗易懂]

    SplitContainer 控件作用[通俗易懂]原文出处:http://blog.csdn.net/xiaobai1593/article/details/7356973作用:(Splitter的简化)使用 SplitContainer 控件可分隔容器(如 Form)的显示区域,并使用户可以调整已添加到 SplitContainer 面板中的控件的大小。当用户将鼠标指针移到拆分器上时,光标将发生变化,以指示可以调整 SplitC

    2022年7月18日
    18
  • navicat for mysql永久激活码最新【2022最新】「建议收藏」

    (navicat for mysql永久激活码最新)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~2KLKA7BQFO-eyJsaWNlb…

    2022年4月1日
    5.0K
  • StopWatch 简单使用

    StopWatch 简单使用StopWath是apachecommonslang3包下的一个任务执行时间监视器主要方法:start();//开始计时split();//设置split点getSplitTime();//获取从start到最后一次split的时间reset();//重置计时suspend();//暂停计时,直到调用resume()后才恢复计时resume();//恢复计时…

    2022年6月23日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号