并发编程

Posted zhao-zhao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并发编程相关的知识,希望对你有一定的参考价值。

一、引子

1.1、python中的GIL机制

1、由于python只能调用一个cpu来工作,故 适合用来处理IO密集型问题。

技术图片
# -*-coding:utf-8-*-
_auther=renzhoazhoa
import os,subprocess
from multiprocessing import Process

class MyProcess(Process):
    def __init__(self,arg1,arg2):
        super().__init__()
        self.arg1=arg1
        self.arg2=arg2
    def run(self):
        print(self.pid)        
        print(os.getpid())  # 两种查看进程号的方法
        print(self.name)
if __name__ == __main__:
    print(Father,os.getpid())
    p1=MyProcess(1,2)
    p1.start()                # start会自己调用process里的run方法
    p2=MyProcess(3,4)
    p2.start()
一个自定制多线程的例子

 1.2、守护进程

守护进程会随着主进程的代码执行完毕而结束,而不是随着主进程的完毕而完毕。

技术图片
# -*-coding:utf-8-*-
_auther=renzhoazhoa
import os,subprocess,time
from multiprocessing import Process
def too():
    while True:
        time.sleep(1)
        print(I still alive)
def two():
    print(**10)
    time.sleep(8)
    print(**10)
if __name__ == __main__:
    t1=Process(target=too)
    t1.daemon=True
    t1.start()
    t2=Process(target=two)
    t2.start()
    time.sleep(3)
    t2.terminate()        # 向操作系统发送终止线程的请求,由于需要响应时间线程不会立即结束,所以下一步会返回True 
    print(t2.is_alive())  # 返回True
    time.sleep(1)
    print(t2.is_alive()) # 返回False
    i=0
    while i<5:
        print(I am Father jincheng)
        time.sleep(2)
        i+=1
一个例子

 

以上是关于并发编程的主要内容,如果未能解决你的问题,请参考以下文章

Go语言学习之旅--并发编程

并发编程路线

java并发编程看啥书比较好

JAVA并发编程:并发编程的认识

并发编程的基础

Java并发编程之美