python进程与线程基本概念

python多进程应用threading(subprocessing)
1.进程
可包含一个线程或多个线程
2.线程:
单线程和多线程
3.守护线程:
setDaemon=True,守护意味着当前的线程不影响整个进程的进退,不需要等待当前线程全部进行完再继续接下来的线程,当前的线程不影响整个进程的进退.要在start之前定义.(比如监听can信号时,需要消耗15秒,可以将其设为守护进程,那么进行就不会等待15秒,而且继续下面的进程,后台还是会继续执行15秒)
假设现有action2线程,且后面没有线程,action2上有一个sleep=5的功能,若setDaemon=True,则该线程还是继续执行sleep=5,但是进程不用执行sleep=5.
4.线程等待
join作用是阻塞主线程,设置的时候,需等当前线程执行完再往下执行.
join(time),这里的time是阻塞主线程的时间.
一个线程(主线程)里可以还有线程(子线程).
5.线程锁(多线程访问全局变量或共享地址空间时候需要加线程锁,防止进程紊乱)
·Lock:原始锁:(python2)
当有两个锁时,无法再次获得锁的使用权,线程被阻塞,无法继续执行.
·Rlock递归锁:
当有两个锁时,可以再次获得锁的使用权,不会被阻塞.
代码编写注意事项:
调用函数时,不需要加括号,如t.init不能写成t.init()
调用参数时,args=(4,),这里必须要加逗号,否则被当成整数类型
args=[4]

发布了38 篇原创文章 · 获赞 5 · 访问量 5109

猜你喜欢

转载自blog.csdn.net/weixin_40367126/article/details/99719288