python3线程练习-上位机开发1
这是我的第一篇博文,公司突然要求让弄一个上位机,主要是要连接数字万用表和公司自己的开发的测校准仪,下面是仪器的连接图,我们公司自己开发的仪器,主要也是测试电流的功能,但是精度要求很高,所有用一段时间之后,就需要校准,人工校准很麻烦,所有就考虑上位机,我原本打算用labview去实现,但是由于种种原因,就放弃了,后来了解到python可以实现,上位机既需要能用捷安特的数字万用表通信,还需要有串口功能,所以最后选择使用python开发,我也不是python开发,唯一的编程基础也是好几年前大学学的C C++ JAVA ,虽然门类多,但是学的都是皮毛,毕业后也没有做一个程序员,
扯远了好像,还好python不难,各种教程资源,满天飞,所以囫囵吞枣的学两个星期,还是懂了一点了,又扯远了,直接进今天标题------线程吧,我需要开发的上位机,因为需要同时接收数字万用表的数据,还需要与测试版交互,所以决定使用多线程。以下是我的学习代码,希望对看到文章的你有所帮助`
# -*- coding:utf-8 -*-
# 开发人员:Administrator
# 开发时间:2020/1/13 0:10
# 文件名称: zzz.PY
# 开发工具:PyCharm
# python版本:python 3.8
# 写一个程序,两个线程,一个线程负责生成随机数,并保存进文件中,另一个线程不断的读取,线程完成之后,主线程清空文件
import threading # 导入线程模块
import time # 导入时间模块
import random # 导入随机函数
def process1(): # 线程1 ,负责写入随机生成的数据到"ceshi.txt"这个文件内
for i in range(10): # 使用for语句 循环10次
time.sleep(1) # 每次执行延迟1s
print('我是线程1') # 利于观察
with open('ceshi.txt','a') as f: # 打开文件,,追加模式,如果文件不存在,则新建一个文件
f.write(str(random.random())) # 将随机生成的(0.1)内的附件数转换为字符串,写入文件内
def process2(): # 线程2,负责读出线程1生成的文件,并输出到控制台
for i in range(10):
time.sleep(0.5)
print('我是线程2')
with open('ceshi.txt') as f:
print(f.readlines()) # 将文件内的所有文件输出到控制台
def modify_text(): # 将文件内所有的内容清空的函数
with open('ceshi.txt', "r+") as f:
read_data = f.read()
f.seek(0) # 将读取的光标切换到文档起始位置
f.truncate() # 清空文件内所有的内容
if __name__ == '__main__':
print('主线程开始')
p1 = threading.Thread(target=process1) # 创建 线程1
p2 = threading.Thread(target=process2) # 创建 线程2
p1.start() # 线程1 开始启动
p2.start() # 线程2 开始启动
p1.join() # 阻塞主线程
p2.join() # 阻塞主线程
modify_text() # 清空文档内内容
print('主线程结束')
以上的程序就是多线程的简单应用,上面的注释很详细了,所以就不多解释啦
至于上位机,我还没写完,到时候可以考虑开源,并且总结这段时间的坑!!!
2020年1月13日01:22:29