1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| import mmap
| import contextlib
| import multiprocessing
| import time
|
| from huaxin_client import l2_data_manager
|
|
| def run_process_1(pipe):
| tag = 'l2-000333'
| with contextlib.closing(mmap.mmap(-1, 1000 * 100, tagname=tag, access=mmap.ACCESS_WRITE)) as m:
| for i in range(1, 10001):
| start = time.time()
| m.seek(0)
| m.write((f"msg {i} " * 10000).encode("utf-8"))
| m.flush()
| print("耗时", time.time() - start)
| time.sleep(1)
|
|
| def run_process_2(pipe):
| while True:
| with contextlib.closing(mmap.mmap(-1, 1000 * 100, tagname='l2-000333', access=mmap.ACCESS_READ)) as m:
| s = m.read(1000 * 100)
| s = s.decode('utf-8').replace('\x00', '')
| if s:
| print(len(s), s)
| time.sleep(1)
|
| if __name__ == '__main__':
| l2_data_manager.test()
| pass
|
|
| if __name__ == '__main__1':
| p1, p2 = multiprocessing.Pipe()
| serverProcess = multiprocessing.Process(target=run_process_1, args=(p1,))
| jueJinProcess = multiprocessing.Process(target=run_process_2, args=(p2,))
| serverProcess.start()
| jueJinProcess.start()
|
| while True:
| time.sleep(2)
|
|