USANDO CTYPES (BIBLIOTECA C )
eh possivel compartilhar dados de processos distintos
import multiprocessing
import ctypes
# Definir uma estrutura de dados C que será compartilhada entre os processos
class Info(ctypes.Structure):
_fields_ = [("nome", ctypes.c_char_p), ("idade", ctypes.c_int)]
def producer(pipe):
# Criar uma instância da estrutura de dados C
info = Info()
info.nome = "Bard"
info.idade = 1
# Enviar a estrutura de dados C para o consumidor
pipe.send(ctypes.byref(info))
def consumer(pipe):
# Receber a estrutura de dados C do produtor
info = ctypes.byref(pipe.recv())
# Imprimir as informações da estrutura de dados C
print(f"Nome: {info.nome}")
print(f"Idade: {info.idade}")
if __name__ == "__main__":
# Criar um canal de comunicação entre os processos
parent_conn, child_conn = multiprocessing.Pipe()
# Iniciar o produtor
p = multiprocessing.Process(target=producer, args=(child_conn,))
p.start()
# Iniciar o consumidor
c = multiprocessing.Process(target=consumer, args=(parent_conn,))
c.start()
# Aguardar a conclusão dos processos
p.join()
c.join()