gpt4 book ai didi

multithreading - 线程可以共享同一个客户端套接字吗?

转载 作者:行者123 更新时间:2023-12-03 14:54:10 24 4
gpt4 key购买 nike

我使用 TClientSocket 或 indy 的 TIdTCPClient (取决于项目)

我有几个线程,每个线程处理项目,有时需要通过连接的客户端套接字发送数据。 (处理线程中不使用从套接字读取的数据)

基本上我的问题是......

  • 可能吗?
  • “安全”吗?

或者我应该

  • 每个线程有一个客户端套接字或
  • 某种编码/关键部分

delphi-7 indy-9

最佳答案

多个线程可以读取和写入同一个套接字。因为每次您接受时,它都会提取挂起连接队列中的第一个连接,创建一个具有相同套接字属性的新套接字,并为该套接字分配一个新的文件描述符。

因此每个接受的连接只有一个线程。

如果您询问是否可以在接受的连接上进行多次写入/读取,则您将需要锁定功能,从而损失并行性优势。如果您想线程化一个长进程,然后将结果写入套接字,请使用同步以正确的顺序写入。

关于multithreading - 线程可以共享同一个客户端套接字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4405285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com