学python第不知道多少天

线程和进程:

进程:简单的讲进程就是操作系统中执行的一个程序,操作系统以进程为单位分配存储空间。一个进程可以以拥有多个并发的执行线索。那就有人问并发是什么??举个简单的例子来说明一下,例如我们倒车入库,一个库两辆车同时进行倒车入库,此时就是并发。(明白吧)官方点儿就是拥有多个可以获得CPU调度的执行单元,这就是所谓的线程。由于线程在同一个进程下,它们可以共享相同的上下文,因此相对于进程而言,线程间的信息共享和通信更加容易。当然在单核CPU系统中,真正的并发是不可能的,因为在某个时刻能够获得CPU的只有唯一的一个线程,多个线程共享了CPU的执行时间。
创建进程:

python
import multiproccessing
def A():
     print('hello')

if __name__='__main__':
##创建进程
      p=multiprocessing.Process(taeget=A,args=())
      p.start()  #启动线程
      print('Over')

执行结果:

Over
hello
原因:因为每一个进程都是独立的,在我们进行执行的时候其实就是在启动一个进程,上面那个p.start被上面我梦定一的进程给抢走了,所以先执行的下面‘Over’,然后才执行的‘hello’

优化上面的代码:

import multiproccessing
def A():
     print('hello')

if __name__='__main__':
##创建进程
      p=multiprocessing.Process(taeget=A,args=())
      p.start()  #启动线程
      p.join()
      print('Over')

执行结果:

hello
Over

Python既支持多进程又支持多线程,因此使用Python实现并发编程主要有3种方式:多进程、多线程、多进程+多线程。

python中的多进程:

代码如下

import multiproccessing
import os
def A(name):
     print(os.getpid)  #h获取存放地址
     print(name)

if __name__='__main__':
##创建进程
      p=multiprocessing.Process(taeget=A,args=('CCN',)) ##在args中的参数必须是元组
      p2=multiprocessing.Process(taeget=A,args=('CCN01',))   
      ##多进程
      p.start() #启动线程
      p2.start()
      p.join()
      p2.join()
      print('ok')

执行结果:

CCN
地址
CCN
地址
ok

课上的小例题,好难呀?
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值