python线程串口
可能是与串口软件冲突,解决方法如下:
1、添加控件,通过菜单Project→AddtoProject→ComponentsandControl插入即可,再将该控件从工具箱中拉到对话框中。
2、在窗口上添加一个串口控件,随便放一个位置,此控件是不可见的。
3、为控件添加变量m_com为后面操作做准备,如果不添加变量也可以用GetDlgItem函数获取句柄进行操作。
4、打开串口即可。
‘贰’ Python进程之串行与并行
串行和并行
串行指的是任务的执行方式。串行在执行多个任务时,各个任务按顺序执行,完成一个之后才能进行下一个。(早期单核CPU的情况下)
并行指的是多个任务在同一时刻可以同时执行(前提是多核CPU),不需要等待。
同步和异步
所谓同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。要成功都成功,失败都失败,两个任务的状态可以保持一致需要等待、协调运行。
所谓异步就是彼此独立的,分配任务后,不需要等待该任务的执行结果,继续做自己的事,无论被分配的任务是执行成功还是失败都是不关心的,只要自己完成了整个任务就算完成了。至于其它任务是否真正完成无法确定,所以它是不可靠的任务序列。
相关推荐:《Python视频教程》
小结:
1、串行和同步的区别:串行指的是在早期单核CPU时,一台电脑在同一时刻只能执行一个程序,如果想要运行另一个程序需要关闭当前程序,才能执行下一个程序,是针对多个程序来说的。同步指的是在一个程序中同一时刻只能执行一个任务。是针对一个程序中多个进程或多个线程来说的。
所以两者有着本质上的区别。串行是针对多个程序,同步是针对一个程序内部的多个进程或多个线程的。
2、并行和异步的区别:并行指的是多核CPU,在同一时刻可以执行多个程序。异步指的是在同一个程序内可以执行多个进程或者多个线程。
两者本质上的区别就是并行指的是多个程序,异步指的是一个程序内部的多个进程和多个线程。
3、并行和并发的区别:并行和并发都是指多个程序,但不同的是并行在同一时刻可以同时执行多个任务,而并发在同一时刻只能执行一个任务,通过多道技术在空间上可以开启多个程序,在时间上通过时间片的方式轮询多个程序,从用户的角度来看实现了多个程序同时执行的伪并行,从CPU的角度同一时刻它只能执行一个程序,所以说他是串行的,只不过是由于CPU切换速度太快我们无法从表面看出来而已。
并行是真正的同一时刻执行多个程序,并发是通过时间轮询的方式实现了伪并行。
阻塞与非阻塞:
阻塞:只要是涉及到I/O操作或者网络请求的都属于阻塞如read,recv,accept。
非阻塞:只要不涉及到I/O,网络请求的在内存中可以直接计算的就是非阻塞,例如:list.append(8),dict["a"]=1就是非阻塞。
相关推荐:
Python进程之并行与并发的区别
‘叁’ python Tkinter GUI 串口通信 显示。
后台线程将数据写到一个缓冲区,也就是全局变量(可以用队列)里。然后在界面上使用一个timer,定时刷新,从缓冲区获取数据后写到控件上。
原理是这样子。你摸索一下就解决了。有一本书,python tkiner编程,有电子版的。基本上你所要的所有东西都可以找到。
‘肆’ python串口读取数据 读不完就打印了
python串口读取数据 读不完就打印了
‘伍’ python,windows下,我创建了2个线程来不停接收2个串口的信息,并打印出来。怎么打印在不同的窗口
正常的做法是在打印的时候加一个串口的标识做输出字符串的前缀, 比如:
serial 1: xxxx
serial 2: yyyy
这样是不需要用两个窗口的,如果一定要两个窗口,那建议使用GUI程序来做。
‘陆’ python的串口close()函数关闭不成功
用ser.isOpen()查看返回False,说明ser.close()起作用了啊。用管理员身份打开cmd,再执行脚本试试?