python3 进程和线程

进程和线程

  1. 进程:内存独立,线程共享同一进程的内存
  2. 进程是资源的集合,线程是执行单位
  3. 进程之间不能直接互相访问,同一进程中的程可以互相通信
  4. 创建新进程消耗系统资源,线程非常轻量,只保存线程运行时的必要数据,如上下文、程序堆栈信息
  5. 同一进程里的线程可以相互控制,父进程可以控制子进程

 1 import threading
 2 import time
 3
 4 def sayhi(num):
 5     print(‘num:‘,num)
 6     time.sleep(3)
 7
 8 a = threading.Thread(target=sayhi,args=(1,))
 9 b = threading.Thread(target=sayhi,args=(2,))
10 now1 = time.time()
11 print(now1)
12 a.start()
13 b.start()
14 now2 = time.time()
15 print(now2)
16 print(threading.active_count())
17 # 包含主线程,总共3个
18 print(a.getName())
19 print(b.getName())
20
21 class MyThread(threading.Thread):
22     def __init__(self,n):
23         threading.Thread.__init__(self)
24         self.n = n
25
26         def run(self):
27             print(‘running on thread $s‘%self.n)
28             time.sleep(3)
29 now3 = time.time()
30 print(now3)
31 t1 = MyThread(1)
32 t2 = MyThread(2)
33 t1.start()
34 t2.start()
35 print(t1.getName())
36 print(t2.getName())
37 now4 = time.time()
38 print(now4)
39
40 thread_list = []
41 for i in range(10):
42     s1 = threading.Thread(target=sayhi,args=(i,))
43     s1.start()
44     thread_list.append(s1)
45 now5 = time.time()
46 print(now5)
47 for r in thread_list:
48     r.join() # s1.wait()
49 print(‘--work done--‘)
50 now6 = time.time()
51 print(now6)
52 print(‘primary‘.center(20,‘-‘))
53
54
55 for ii in range(10):
56     s2 = threading.Thread(target=sayhi)
57     s2.setDaemon(s2)
58     s2.start()

时间: 2024-10-05 10:00:03

python3 进程和线程的相关文章

Python3 异步编程之进程与线程-1

Python3 异步编程之进程与线程-1 一.了解进程间通信 进程间通信 进程 线程 线程 vs 进程 IO模型 并发 vs 并行 异步 vs 同步 二.多线程与多进程的用法 计算密集型 vs I/O密集型 GIL 多线程 多进程 三.协程的好处与用法 协程 yield yield from 四.进程间通信-IPC 01 管道:无名管道和命名管道(FIFO) 消息队列 信号量 共享存储 Socket Streams 相关定义: 管道: 命名管道: 消息队列: 信号量: 共享内存: 元子操作: 五

Python3 从零单排28_线程队列&进程池&线程池

1.线程队列 线程队列有三种:先进先出,后进先出,按优先级进出,具体如下: 1 import queue 2 3 # 先进先出 4 q = queue.Queue(3) 5 6 q.put(1) 7 q.put(2) 8 q.put(3) 9 # q.put(4) # 再放阻塞,等待队列消费 10 # q.put(4,block = False) # 不阻塞,强制放数据,如果满的情况下直接报错 等价与 q.put_nowait(4) 11 # q.put(4,block = True) # 阻塞

python开发学习-day08(socket高级、socketserver、进程、线程)

s12-20160305-day08 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* BLOCKS =============================================================================*/ p, blockquote, ul, ol, dl, table, pre { margin

python中的进程、线程(threading、multiprocessing、Queue、subprocess)

Python中的进程与线程 学习知识,我们不但要知其然,还是知其所以然.你做到了你就比别人NB. 我们先了解一下什么是进程和线程. 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分配.任务的调度. 程序是运行在系统上的具有某种功能的软件,比如说浏览器,音乐播放器等. 每次执行程序的时候,都会完成一定的功能,比如说浏览器帮我们打开网页,为了保证其独立性,就需要一个专

Python自学笔记-进程,线程(Mr serven)

对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程. 有些进程还不止同时干一件事,比如Word,它可以同时进行打字.拼写检查.打印等事情.在一个进程内部,要同时干多件事,就需要同时运行多个"子任务",我们把进程内的这些"子任务"称为线程(Thread). 同步是指:发送方发出数据后,等接收方发回响应以后

Python(十) 进程、线程、协程篇

本节内容 1.操作系统发展史    2.进程.与线程区别    3.Python GIL全局解释器锁    4.线程        1.语法        2.join        3.线程锁 Lock.RLock.信号量        4.将线程变为守护进程        5.Event事件        6.queue队列        7.生产者消费者模型        8.Queue队列        9.开发一个线程池    5.进程        1.语法        2.进程间

12 认识进程与线程 (进阶)

认识进程与线程(python) 一段时间没有更新博客了,今天和大家讲讲关于 python 进程和线程的知识点.(个人心得,多多指教!) 阶段一:并发与并行的深入理解 ? 并行一定是并发,但并发不一定是并行. ? 并行是相对的,并行是绝对的. 1.关于并行与并发的问题引入: 问题一: 计算机是如何执行程序指令的? 问题二: 计算机如何模拟出并行执行的效果? 问题三: 真正的并行需要依赖什么? 2.计算机执行指令示意图 2.轮询调度实现并发执行 并发:看上去一起执行,同时在发生 并行:真正一起执行,

Python之路(十八):进程,线程,协程

python基础之进程.线程.协程 引子 进程 线程(优先阅读) 协程 进程 概念:就是一个程序在一个数据集上的一次动态执行过程(本质上来讲,就是运行中的程序(代指运行过程),程序不运行就不是进程)    抽象概念 组成:  1.程序:我们编写的程序用来描述进程要完成哪些功能以及如何完成  2.数据集:数据集则是程序在执行过程中所需要使用的资源  3.进程控制块:进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志. 阐释:进程

python进程,线程,协程

参考别人的博客:https://www.cnblogs.com/whatisfantasy/p/6440585.html 线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 创建线程的两种方法 # 方法1 直接调用 import threading import time def sayhi(num): print("running on number:%s&