进程:就是一个程序,运行在系统之上,那么便称之为这个程序为一个运行进程,并分配进程ID方便系统管理。
线程:线程是归属于进程的,一个进程可以开启多个线程,执行不同的工作,是进程的实际工作最小单位。
进程就好比一家公司,是操作系统对程序进行管理的单位。
线程就好比公司的员工,进程可以有多个线程,是进程的实际工作者。
注意:进程之间内存是隔离的,即不同的进程拥有各自的内存空间。这就类似于不同的公司拥有不同的办公场所;
线程之间是内存共享的,线程是属于进程的,一个进程内的多个线程之间是共享这个进程所拥有的内存空间的。
指的是同一时间做不同的工作。
进程之间就是并行执行的,操作系统可以同时运行好多程序,这些程序都是在并行执行。线程也是可以并行执行的。
import threading
thread_obj = threading.Thread([group [, target [, name [ , args [, kwargs]]]]])
-group:暂时无用,未来功能的预留参数
-target:执行的目标任务名
-args:以元组方式给执行任务传参
-kwargs:以字典方式给执行任务传参
-name:线程名
import time
import threading
def sing():
while True:
print("我在唱歌")
time.sleep(1)
def dance():
while True:
print("我在跳舞")
time.sleep(1)
if __name__ == '__main__':
#创建一个唱歌的线程
sing_thread = threading.Thread(target=sing)
#创建一个跳舞线程
dance_thread = threading.Thread(target=dance)
sing_thread.start()
dance_thread.start()
import time
import threading
def sing(msg):
while True:
print(msg)
time.sleep(1)
def dance(msg):
while True:
print(msg)
time.sleep(1)
if __name__ == '__main__':
#创建一个唱歌的线程
sing_thread = threading.Thread(target=sing, args=("我要唱歌好好",))
#创建一个跳舞线程
dance_thread = threading.Thread(target=dance, kwargs={"msg": "我在跳舞"})
sing_thread.start()
dance_thread.start()