从操作实例“UI界面实现SSH登录服务器并执行命令监控”中学习到的线程与线程间参数传递方法记录;

https://www.cnblogs.com/babashi9527/p/16594881.html

参照此代码中的实例,线程主要以启用线程传递函数方式运行对应的执行内容,而线程间的参数传递依托于队列方式实现;

1、多线程

使用模块threading中的Thread

代码示例:

#首先确保模块已导入
from threading import Thread #实例化线程
'''
参数含义: target 绑定线程函数, args 元组 给线程函数位置传参, kwargs #字典 给线程函数键值传参
'''
td = Thread(target=ServerMonitor,args=(abd,))
#设置主线程和分支线程退出分支线程也退出.要在start前设置 通常不和join 一起使用
td.setDaemon(1)
#启动线程
td.start()

#定义执行函数
def ServerMonitor(abd):
  print(abd)

2、队列

使用系统自带的queue模块

代码示例:

#确保已导入模块
import queue #调用queue模块中的Queue函数定义队列,并配置队列长度
QueueInfo = queue.Queue(100000) #使用put方法将数据压入队列尾部
QueueInfo.put(back_normal_info) #使用get方法取队列头部值
AnswerInfo = QueueInfo.get()

3、以参数形式传递py文件中的类,以供函数引用所传递的py文件类中的变量或者方法

#注意此处定义的类,稍后以self,作为参数传递给其他py文件
class MainFrameUI(wx.Frame): def __init__(self,parent): #起线程开始任务
td = Thread(target=self.ServerMonitor)
td.setDaemon(1)
td.start() #把所属的类传递,以self作为参数传递给目标函数(目标函数会传递给另外一个彭以文件)
def ServerMonitor(self):
#@author: 9527 Load_list1 = self.Info_List2 #实例化Remote_management_WayKind类
self.Ssh_load = MESRM.Remote_management_WayKind() if self.action_or_stop == True: for Load_list in Load_list1: td = Thread(target=self.Use_Monitor, args=(self, Load_list))
td.setDaemon(1)
td.start() else:
self.log_info1.AppendText('连接失败请重试\n')
pass #这里的parent是上面线程传递的self,将会传递给调用的另外一个py文件的Command_Way方法里面;注意在此方法中也需要定义参数,以便接受参数传入;
  def Use_Monitor(self, parent, Load_list): #调用MESRM.Remote_management_WayKind的Command_Way方法
#传参parent为self是启用进程的MainFrameUI本身,Load_List为登陆了认证信息
print("调用进程已启用: ", Load_list)
self.Ssh_load.Command_Way(parent,Load_list)

从操作实例“UI界面实现SSH登录服务器并执行命令监控”中学习到的线程与线程间参数传递方法记录的更多相关文章

  1. Python通过ssh连接服务器并执行命令

    [本文出自天外归云的博客园] 脚本示例如下: # coding:utf-8 import time,paramiko,re,StringIO def exec_shell(command): ''' ...

  2. expect远程登录服务器并执行命令

    #!/usr/bin/expectset timeout 120            #设置执行超时时间,任何输入120秒后退出set password "password"  ...

  3. Mac 无密码 SSH 登录服务器

    Mac 无密码 SSH 登录服务器,只需要简单三步,不再需要记住账号密码,快速进入服务器 第一步,生成密钥对 在当前用户下创建.ssh目录 mkdir ~/.ssh 使用命令ssh-keygen生成密 ...

  4. ssh登录服务器提示错误no hostkey alg

    ssh登录服务器提示错误no hostkey alg ssh root@192.168.1.100 -vvv 提示失败: no hostkey alg 登录到192.168.1.100服务器 rm - ...

  5. centos linux ip地址无法连接数据库,ssh登录服务器时必须使用22端口

    问题一:连接数据库时直接使用ip地址无法连接,必须使用ssh方式才能连接? 问题二:ssh登录服务器时必须使用22端口,在/etc/ssh/sshd_config中添加了10086端口,防火墙中已开启 ...

  6. ssh远程连接linux服务器并执行命令

    详细方法: SSHClient中的方法 参数和参数说明 connect(实现ssh连接和校验) hostname:目标主机地址 port:主机端口 username:校验的用户名 password:登 ...

  7. Linux centosVMware运行告警系统、分发系统-expect讲解、自动远程登录后,执行命令并退出、expect脚本传递参数、expect脚本同步文件、指定host和要同步的文件、shell项目-分发系统-构建文件分发系统、分发系统-命令批量执行

    一运行告警系统 创建一个任务计划crontab -e 每一分钟都执行一次 调试时把主脚本里边log先注释掉 再次执行 没有发现502文件说明执行成功了,每日有错误,本机IP 负载不高 二.分发系统-e ...

  8. python paramiko实现ssh上传下载执行命令

    paramiko ssh上传下载执行命令 序言 最近项目经常需要动态在跳板机上登录服务器进行部署环境,且服务器比较多,每次完成所有服务器到环境部署执行耗费大量时间.为了解决这个问题,根据所学的执行实现 ...

  9. java ssh远程服务器并执行多条shell命令

    java ssh远程服务器并执行多条命令 import java.io.BufferedReader; import java.io.IOException; import java.io.Input ...

  10. shell脚本批量ssh登陆主机并执行命令

    shell脚本批量ssh登陆主机并执行命令 今天在客户现场遇到了这个问题,客户没有管理工具,无法批量登陆主机下发命令,几个个C段啊,让我一个一个登陆,.................. 所以写了个s ...

随机推荐

  1. python3.7 sorted 自定义排序

    from functools import cmp_to_keyls=['9','23','3','56','78']sorted(ls, key=cmp_to_key(lambda x, y: in ...

  2. 在Unity3D中开发的角色视觉系统插件Sight Detect System

    Sight-Detect-System 这款Sight Detect System插件由本人用Unity3D所开发,它在游戏中可以成为角色的视觉感知系统. 如果你想开发潜行类游戏时,那么这款视觉插件非 ...

  3. sonar使用

    代码质量检查工具 sonar 1. 下载,版本sonar 4.5.1 运行bin下的bat文件,浏览器中访问: http://localhost:9000 , 成功. 2. 修改数据库为mysql数据 ...

  4. [自用初学]c++的构造函数

    #include <stdio.h> #include <string.h> class Student { private: int id; char name[32]; p ...

  5. 6-8次PTA题目集总结

    一,前言 1,第六次作业(针对电信计费) 本次作业主要是对类的操作,题目已经给出类图,类图里面已经给了各种方法以及属性.此次作业涉及了座机的计费方式,市内省内省外怎么计费.难度偏难,主要是各类之间怎么 ...

  6. 如何卸载inventor 2023?怎么把inventor彻底卸载删除干净重新安装的方法【转载】

    inventor 2023卸载重新安装方法,使用清理卸载工具箱完全彻底删除干净inventor 2023各种残留注册表和文件.inventor 2023显示已安装或者报错出现提示安装未完成某些产品无法 ...

  7. 面向对象ooDay7

    .精华笔记: 1)成员内部类: 应用率不高 1.1)类中套类,外面的称为外部类,里面的称为内部类 1.2)内部类通常只服务于外部类,对外不具备可见性 1.3)内部类对象通常在外部类中创建 1.4)内部 ...

  8. 基于airtest验证Android端app是否安装及自动化安装

    ​ 1.检测app是否安装: 使用check_app方法检测是否安装:为什么需要在封装一层做断言呢?主要check_app方法安装成功会返回True,但是未检测到安装时直接报异常了,停止执行.无法直接 ...

  9. hdu: You Are the One(区间DP)

    Problem Description The TV shows such as You Are the One has been very popular. In order to meet the ...

  10. python openpyxl 多个sheet vlookup

    import pandas as pdimport openpyxlfrom openpyxl.styles import Border, Side,colorswb = openpyxl.load_ ...