Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 How to sharing object between multiple process from main process using Pipe
#1
I try to call multiprocessing to act my process faster.
At the moment I face some problems sharing some data with many processes from main process.
I use multiprocess.pipe() to pass the data.

I use multiprocess.manager to pass the data.

1. Initialization:-



<

try:
global devices
self.listofwritetags = self.collectwritetaglist()
conn1, conn2 = multiprocessing.Pipe()
devices = bussiness.initilaztion(self.comm_object,logger)
conn1.send(devices)
self.callmotor1dprocess =
multiprocessing.Process(target=callallmotor1d,args=[conn2])
self.listofthread.append(self.callmotor1dprocess)





2.Start and stop process:-



def startprocess(self):
for item in self.listofprocess:
item.start()


def stopprocess(self):
for item in self.listofprocess:
item.terminate()



UI:-




self.button3 = ttk.Button(self.frame, text='Start', command=self.startprocess,state =NORMAL)
self.button3.grid(column=1, row=4, sticky=W,padx=5, pady=5)

self.button4 = ttk.Button(self.frame, text='Stop', command=self.stopprocess, state=NORMAL)
self.button4.grid(column=1, row=5, sticky=W, padx=5, pady=5)



I need to call avobe 3 process in one class:- FormUI

but I call executable process outside of the FormUI class.

I got an error when I try to initialize.I want to pass devices from main process to child process.

The calling method:-





def callallmotor1d(conn):
devices = conn.recv()
bussiness.motorallprocessing(devices)



def callallsov1s(conn):
devices = conn.recv()
bussiness.motorallprocessing(devices)





Any help regarding this would be appreciable


Error messege:-

2019-09-03 13:15:33,755: can't pickle _thread.lock objects
Traceback (most recent call last):
File "C:/Users/misu01/PycharmProjects/opcua/ui_v7.py", line 226, in initilization
conn1.send(devices)
File "C:\Users\misu01\AppData\Local\Programs\Python\Python37\lib\multiprocessing\connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "C:\Users\misu01\AppData\Local\Programs\Python\Python37\lib\multiprocessing\reduction.py", line 51, in dumps
cls(buf, protocol).dump(obj)
TypeError: can't pickle _thread.lock objects
Larz60+ wrote Sep-03-2019, 04:01 PM:
Please post all code, output and errors (in it's entirety) between their respective tags. Refer to BBCode help topic on how. Use the "Preview Post" button to make sure the code is presented as you expect before hitting the "Post Reply/Thread" button.
Quote
#2
self.listofprocess has not been declared anywhere in the code you posted
def startprocess(self):
    for item in self.listofprocess:
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  connecting to the spreadsheet object inside multiple enterprise software apps ajetrumpet 0 35 Yesterday, 03:36 PM
Last Post: ajetrumpet
  How to process JSON response from requests? Heinrich 5 280 Jan-10-2020, 06:17 PM
Last Post: Heinrich
  How to make a simple automation process of login using "if condition" soimba 3 222 Jan-07-2020, 11:58 PM
Last Post: SheeppOSU
  ending process hrparra 1 116 Jan-07-2020, 07:40 PM
Last Post: ibreeden
  pydev debugger: process 3442 is connecting when I run a program with ALT+COMMAND+R Seneca260 1 115 Jan-06-2020, 06:57 PM
Last Post: micseydel
  Terminate a process when hotkey is pressed 66Gramms 0 129 Dec-24-2019, 06:41 PM
Last Post: 66Gramms
  Process execution using Popen Shaswat 2 121 Dec-03-2019, 05:22 AM
Last Post: Shaswat
  sharing memory(read-write) between multiple processes mike000 1 180 Oct-31-2019, 08:45 PM
Last Post: woooee
  Sharing memory across threads / scripts Radek 1 351 Oct-31-2019, 07:53 PM
Last Post: Radek
  How to background another process in Python? Kalet 2 233 Oct-21-2019, 05:17 AM
Last Post: newbieAuggie2019

Forum Jump:


Users browsing this thread: 1 Guest(s)