码迷,mamicode.com
首页 > 编程语言 > 详细

Python 3学习 ——Python 多进程与编码

时间:2018-06-08 14:32:15      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:lap   title   相同   line   电脑   共享   存在   size   ima   

Python 学习——Python 编码

 写此博客 是为了激励自己,并且将自己的心得以及遇到的问题与人分享

一、进程

  1.概述

  multiprocessing 包是 Python 中的多进程管理包。与 thread.Threading 类似,可以利用 multiprocessing 对象来创建一个进程。该 Processing 对象与 Thread 对象的用法相同,也有 start() run() join() 的方法。具体使用看下面代码实现。使用这些 API 的时候有如下几点注意事项:  

  •   十分有必要对每个 Process 对象调用 join() 方法,阻止进程成为僵尸进程的一个手段。在多线程中由于只有一个进程,所以不需要采用这种手段。
  •   两个进程之间不能够共享数据,如果想共享数据要有一个第三方来对两者进行沟通共享。优先使用 Pipe 和 Queue ,避免使用 Lock / Event / Semaphone / Condition 等同步方式。  
  •   Windows 系统下,要想启动一个子进程,必须加上 If __name__ == "__main__": ,进程相关的要写在这句下面。
技术分享图片
 1 #author:"LFD"
 2 #date: 2018/6/8
 3 from multiprocessing import Process
 4 import time
 5 
 6 def f(name):
 7     time.sleep(1)
 8     print(hello,name,time.ctime())
 9 
10 if __name__ == "__main__":
11     p_list = []
12     for i in range(3):
13         p = Process(target=f,args=(liufeiduo,))    # 创建进程
14         p_list.append(p)
15         p.start()
16     for p in p_list:
17         p.join()
18 
19     print(jincheng end!)
20 
21 ‘‘‘ # 运行结果:
22 hello liufeiduo Fri Jun  8 11:15:46 2018
23 hello liufeiduo Fri Jun  8 11:15:46 2018
24 hello liufeiduo Fri Jun  8 11:15:46 2018
25 jincheng end!
26 ‘‘‘
creat jincheng_1

上面是通过方法实现多进程;

下面是通过调用类实现多进程;

技术分享图片
 1 from multiprocessing import Process
 2 import time
 3 
 4 class MyProcess(Process):
 5     def __init__(self,name):
 6         super(MyProcess,self).__init__()
 7         self.name = name
 8     def run(self):
 9         time.sleep(1)
10         print(hello,self.name,time.ctime())
11 
12 if __name__ == __main__:
13     p_list = []
14     for i in range(3):
15         p = MyProcess(liufeiduo)
16         p.start()
17         p_list.append(p)
18 
19     for p in p_list:
20         p.join()
21 
22     print(end)
creat jincheng_2

  2.进程关系 

技术分享图片
 1 from multiprocessing import Process
 2 import os,time
 3 
 4 def info(title):
 5     print(title)
 6     print(module name:,__name__)
 7     print(parent process:,os.getppid())
 8     print(process id:,os.getpid())
 9 
10 def f(name):
11     pass
12 
13 if __name__ == __main__:
14     info(\033[32;1mmain process line\033[0m)
15     time.sleep(5)
16     p = Process(target=info,args=(bob,))
17     p.start()
18     p.join()
19 
20 
21 
22 ‘‘‘ 运行结果:
23 main process line
24 module name: __main__
25 parent process: 7708     7708 是Pycharm 在电脑上分得的进程ID
26 process id: 13972
27 bob
28 module name: __mp_main__
29 parent process: 13972
30 process id: 6024
31 
32 ‘‘‘
jincheng relationship

 

 

 

 

 

 

二、Python2 和 Python3 的编码

  编码:基本概念很简单。首先,我们从一段信息即消息说起,消息以人类可以理解、易懂的表示存在。我打算将这种表示称为“明

文”(plain text)。对于说英语的人,纸张上打印的或屏幕上显示的英文单词都算作明文。

 

其次,我们需要能将明文表示的消息转成另外某种表示,我们还需要能将编码文本转回成明文。从明文到编码文本的转换称为“编码”,从编码

文本又转回成明文则为“解码”。

 

技术分享图片

Python 3学习 ——Python 多进程与编码

标签:lap   title   相同   line   电脑   共享   存在   size   ima   

原文地址:https://www.cnblogs.com/jinzejun/p/9128782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!