标签:time from 姓名 了解 inf 结束进程 进程 字符 进入
Linux 文件
b(块设备文件) c(字符设备文件) d(目录)
-(普通文件) l(链接) s(套接字) p(管道)
作用:用于本地不同的程序间进行通信
消息收发
recv send
os.path.exists(path) 功能 : 判断一个文件是否存在 参数:目标文件 返回值 : 存在返回True 否则 False os.remove() os.unlink() 功能 : 删除一个文件 参数 : 目标文件
# 接收端
from socket import *
import os
#确定套接字文件
sock_file = './sock_file'
#判断文件是否已经存在
if os.path.exists(sock_file):
os.remove(sock_file)
#创建本地套接字
sockfd = socket(AF_UNIX,SOCK_STREAM)
#绑定套接字文件
sockfd.bind(sock_file)
#监听
sockfd.listen(3)
#消息收发
while True:
c,addr = sockfd.accept()
while True:
data = c.recv(1024)
if data:
print(data.decode())
c.send(b"Receive")
else:
break
c.close()
sockfd.close()
# 客户端
from socket import *
#确保通信两端用的是同一个套接字文件
sock_file = "./sock_file"
#创建本地套接字
sockfd = socket(AF_UNIX,SOCK_STREAM)
#连接另一端
sockfd.connect(sock_file)
#收发消息
while True:
msg = input(">>")
if msg:
sockfd.send(msg.encode())
print(sockfd.recv(1024).decode())
else:
break
sockfd.close()
定义:程序在计算机中的一次运行过程
程序:是一个可执行的文件,是静态的占有磁盘空间,不占有计算机的运行资源
进程:进程是一个动态过程的描述,占有计算机的资源,有一定的生命周期
同一个程序的不同运行过程是不同的进程,占用资源和生命周期都不一样。
多个任务之间是争夺cpu的关系
谁占有cpu最终是操作系统决定
Z 僵尸进程
+ 前台进程
作用:决定了一个进程的执行权限和占有资源的优先程度
查看进程优先级
top 动态查看系统中的进程信息, 用<>翻页
取值范围 -20 -- 19 -20优先级最高
使用指定的优先级运行程序
nice:指定运行的优先级
e.g. nice -9 ./while.py 以优先级9运行
nice --9 ./while.py 以-9优先级运行
- 什么是进程,进程和程序的区别
import os
pid = os.fork()
import os
from time import sleep
print("*******************")
a = 1
pid = os.fork()
if pid < 0:
print("创建进程失败")
elif pid == 0:
print("这是新的进程")
print("a = ",a)
a = 10000 # 始终在子进程中运行,不会干扰父进程
else:
sleep(1)
print("这是原有进程")
print("parent a =",a)
print("演示完毕")
# 至于谁现运行,看谁先抢到时间片
*******************
这是新的进程
a = 1
演示完毕
这是原有进程
parent a = 1
演示完毕
os.getpid()
os.getppid()
import os
from time import sleep
pid = os.fork()
if pid < 0:
print("Create process failed")
elif pid == 0:
sleep(1)
#获取当前进程的PID
print("Child get pid:",os.getpid())
#获取父进程的PID
print("Child get parent pid:",os.getppid())
else:
sleep(1)
print("parent get child pid:",pid)
print("parent get pid:",os.getpid())
parent get child pid: 1219
parent get pid: 832
Child get pid: 1219
Child get parent pid: 832
os._exit(status)
sys.exit([status])
参数:数字表示退出状态,不写默认为0,字符串,表示退出时打印的内容
sys.exit 可以通过捕获 SystemExit异常阻止退出
import os,sys
#结束进程后不在执行后面内容
# os._exit(0)
try:
sys.exit("hello world")
except SystemExit as e:
print("退出:",e)
print("process exit")
退出: hello world
process exit
import os
from time import sleep
pid = os.fork()
if pid < 0:
print("Create process failed")
elif pid == 0:
sleep(1)
#获取当前进程的PID
print("Child get pid:",os.getpid())
#获取父进程的PID
print("Child get parent pid:",os.getppid())
else:
print("parent get child pid:",pid)
print("parent get pid:",os.getpid())
(base) EnweiHaos-MacBook-Pro:Day4 haoen110$ python fo.py
parent get child pid: 1216
parent get pid: 1215
(base) EnweiHaos-MacBook-Pro:Day4 haoen110$ Child get pid: 1216
Child get parent pid: 1
|
import os
from time import sleep
b
pid = os.fork()
if pid < 0:
print("create process failed")
elif pid == 0:
print("Child Process:",os.getpid())
print("Child process exit")
else:
print("parent process")
while True:
pass
parent process
Child Process: 1242
Child process exit
haoen110 1242 1241 1241 0 1 Z+ s002 0:00.00 (python3.7)
标签:time from 姓名 了解 inf 结束进程 进程 字符 进入
原文地址:https://www.cnblogs.com/haoenwei/p/10658188.html