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)。对于说英语的人,纸张上打印的或屏幕上显示的英文单词都算作明文。
其次,我们需要能将明文表示的消息转成另外某种表示,我们还需要能将编码文本转回成明文。从明文到编码文本的转换称为“编码”,从编码
文本又转回成明文则为“解码”。
原文地址:https://www.cnblogs.com/jinzejun/p/9128782.html
时间: 2024-11-08 01:14:36