python线程之间的互相调用_China - Re: 在python多线程编程中线程的相互调用

在Python多线程编程中,为实现线程间的互相调用,可以通过建立全局字典存储线程实例。每当创建新线程时,将线程实例存入字典。在需要调用其他线程方法时,可以通过字典访问并调用相应方法。这种方式提供了一种跨线程通信的解决方案。
摘要由CSDN通过智能技术生成

建立一个全局字典,每次创建一个线程的时候,把线程实例保存到字典中去。

from SocketServer import ThreadingTCPServer, StreamRequestHandler

lkpool={}

class StreamHandler(StreamRequestHandler):

def send(self,text):

def handle(self):

self.semawrite=threading.BoundedSemaphore(1)

lkpool[self.client_address]=self

def finish(self):

del lkpool[self.client_address]

调用的时候可以这样,任何地方都可以调用。

lkpool[address].send(something)

On 6/18/07, 秦川 wrote:

>   是这样的,我在尝试用python些一个C/S的程序,目的是通过TCP连接实现局域网内

聊天的简单通信。

> 我的做法是,当客户端程序连接过来的时候,新建一个线程,开启新的TCP连接,然

后发送和接收都由这个线程来进行。我遇到的问题是,如果一个连接要向另一个连接发

送信息(即通过服务器中转一下),他就需要执行别的线程里面的发消息方法。

>

> 我不知道有什么办法可以直接调用。我用的蠢办法是在建立线程的时候把一个函数传

递到__init__中去,然后当收到信息的时候调用该函数(有点像C#的委托啊),

> 这个函数中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值