计算机技术名词介绍

 

1 # 多道技术:让多个程序在内存中,遇到IO阻塞,切换到其他程序以达到CPU资源最大化的技术
2 # 分时系统:在CPU被程序长时间占用时,切换其他任务,以达到多个任务像是同时运行一样
3 
4 # 并行:在多核CPU中,每个核心一起并列执行任务,叫做并行
5 # 串行:对于一个CPU核心来说,按顺序执行每个任务,叫做串行
6 # 并发:对于一个CPU核心,在遇到IO阻塞,或者一个线程长时间占用CPU时,切换执行其他任务,以达到CPU最大效率的方式,就是并发

 

1 # 进程是cpu资源分配的最小单位,线程是cpu调度的最小单位。
2 # 线程的维度要比进程更细,好比一列火车(进程),一节车厢(线程)

 

 1 # 同步:程序顺序执行过程中,执行一个任务,要等待一个任务执行结束,就是同步
 2 # 异步:程序执行过程,发送一个消息,但不管结果如何,继续执行,就是叫异步
 3 
 4 # 阻塞:CPU执行任务中,遇到IO接口,造成CPU等待的现象就是叫做阻塞
 5 # 非阻塞:CPU执行任务中,程序没有IO接口,CPU不会等待输入输出,就是非阻塞
 6 
 7 
 8 # 同步和异步与阻塞和非阻塞之间的关系:
 9     # 同步和异步是相对于被执行的任务而言,阻塞和非阻塞是相对执行任务的人(CPU)而言的
10     # 同步是要等执行结果返回之前,不能做其他事
11     # 异步是交给别人处理事情,告诉执行结果就行,自己做其他事
12     # 阻塞是处理一件事,需要返回结果,但是不影响做其他事
13     # 非阻塞是处理一件事,不需要等待返回结果,也直接去做其他事

 再看下面代码:

 1 import time
 2 from multiprocessing import Process, Queue
 3 
 4 def cook(plate):
 5     """
 6     厨师(生产者)
 7     """
 8 
 9     time.sleep(0.1)  # 厨师每0.1秒做出一个蛋糕
10     plate.put("蛋糕")
11     print("厨师做出了一块蛋糕...")
12 
13 def eat(plate):
14     """
15     食客(消费者)
16     """
17     while 1:
18         time.sleep(0.01)        # 每个食客每0.01秒就把蛋糕吃完了
19         cake = plate.get()
20         if cake==None:break
21         print("一块蛋糕被吃掉了")
22 
23 
24 if __name__ == '__main__':
25     plate = Queue()
26     lst = []
27     for i in range(3):
28         # 生成三个生产者
29         cooker = Process(target=cook, args=(plate, ))
30         cooker.start()
31         lst.append(cooker)
32     
33     eater = Process(target=eat, args=(plate, ))
34     eater.start()
35     # 产生了两个消费者
36     eater1 = Process(target=eat, args=(plate, ))
37     eater1.start()
38 
39     for j in lst:
40         j.join()
41         # 在生产者生产完成后
42     
43     plate.put(None)
44     plate.put(None)
45     # 发送两个None,确保每个消费者都得到一个None,
46     # 既可以蛋糕都被吃掉,也避免厨师不作蛋糕了,食客还在等待

 

转载于:https://www.cnblogs.com/NoteBook3013/p/10446183.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值