我的脚本遍历输入文件的每一行,并使用每一行中的字符串执行一些操作。由于在每一行上执行的任务是相互独立的,我决定将任务分开,threads这样脚本就不必等待任务完成才能继续循环。代码如下。
def myFunction(line, param):
# Doing something with line and param
# Sends multiple HTTP requests and parse the response and produce outputs
# Returns nothing
param = arg[1]
with open(targets, "r") as listfile:
for line in listfile:
print("Starting a thread for: ",line)
t=threading.Thread(target=myFunction, args=(line, param,))
threads.append(t)
t.start()
Run Code Online (Sandbox Code Playgroud)
我意识到这是一个坏主意,因为输入文件中的行数越来越大。使用此代码,线程数将与行数一样多。研究了一下,认为这queues就是方法。
我想了解在这种情况下使用队列的最佳方式,以及是否有任何我可以使用的替代方案。
我正在编写一段代码,必须将主机名作为可选参数传递。还需要使用 -h 选项传递。
用法:
./program.py -h hostname
Run Code Online (Sandbox Code Playgroud)
Argparse 默认使用 -h 来打印帮助。是否有可能以某种方式覆盖它?
我有一个在程序中使用argv [0]的C程序.我知道argv [0]是正在执行的程序的路径.我想将自定义字符串作为argv [0]传递给程序而不是程序名称.有没有办法在shell中执行此操作?
我读了一下exec命令.但我不确定用法.help exec说我必须通过exec -a <string>
exec?澄清问题:
我正在运行一个程序prog1.要输入程序中的特定部分,我必须为程序提供一个SIGALRM.这个步骤本身很难,因为我不得不创建一个围绕条件的竞赛,以便在程序启动时发送信号.
while true;do ./prog1 2; done & while true; do killall -14 prog1; done
Run Code Online (Sandbox Code Playgroud)
上面的while循环帮助我输入程序的一部分,程序的那部分argv[0]用于系统调用.这个系统调用是system(echo something argv[0])
有没有办法修改上面的while循环而;/bin/myprogram不是argv[0].
底线: I need /bin/myprogram以特权prog1和输出执行.