python多线程框架_基于python和bash的多线程任务框架 不要让cpu闲着了

[Bash shell] 纯文本查看 复制代码#! /bin/bash

##########################################################################################################

#part1:defile your job(第一部分,定义单核任务,需要根据你的实用任务改动)

date >>time

Nproc=40 #prcocess used here (要用的线程数)

ls *ligand.mol2 >list #list of jobs (所有的任务放到一个list里面)

Njob=$(echo $(cat list|wc -l)+1|bc) #total jobs+1 (统计总任务数目)

function jobrun #define your job (定义一个函数任务)

{

j=$(cat list|sed -n "$1"p|cut -c 1-4) #$1 is a parameter for jobid ($1作为函数输入 即任务号 这里首先要找到任务号对应的分子)

prepare_dpf42.py -l $j"_ligand.pdbqt" -r $j"_receptor.pdbqt" -o tmp2 #(为了简单期间这里没有写如何计算格子 如何计算格点文件 这里是从准备dpf文件开始)

autodock4 -p $j.dpf -l $j.dlg #(对接)

}

##############################################################################################################

#part2:mutiple process framwork (第二部分,多线程框架,可以不用懂不用改动)

PID=() #PID is an array to store the pid of your job (PID 用于储存每个线程的pid)

for ((i=1;i

do

for ((Ijob=0; Ijob

do

if [[ $i -ge $Njob ]]; #(如果任务都完成了就退出循环)

then

break;

fi

if [[ ! "${PID[Ijob]}" ]] || ! kill -0 ${PID[Ijob]} 2> /dev/null; then #(如果线程没有被占用)

echo start $i with $Ijob

jobrun $i $Ijob& #(用Ijob线程执行任务i)

PID[Ijob]=$! #(任务完成 释放线程Ijob)

i=$((i+1))

fi

done

##########################################################################################

wait #(等所有线程都空闲下来)

done

echo job finished!

date >>time

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeSWITCH第三方库(视频)的简单介绍(二)

FreeSWITCH使用了大量的第三方库,本文档主要介绍视频相关库的信息: 音频相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5486753.html 其他相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5489315.html ① openh2…

python单步调试的方法_python断点调试方法

pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令,详情见表 1。下面结合具体的实例…

053(七十七)

381、 381.Which pseudo column could you use to identify a unique row in a Flashback Versions Query? A. XID B. VERSIONS_PK C. VERSIONS_XID D. VERSIONS_UNIQUE 382、 382.Which of the following can be used in conjunction with a Flashback Versions Query to fil…

java正则表达式 ppt_Java正则表达式演示

//正则表达式 regular expression regex//空白符有: ,\t,\n,\n,\r,\h;\s等于[\t\n\r\f];\S[^\t\n\r\f]// 常用的正则表达式//// 正则表达式 匹配//-------------------------------…

数加移动定向营销:如何快速搭建不完全依赖用户历史行为的个性化服务

移动定向营销是一款基于规则引擎面向移动应用做流量精准运营的数据服务,能帮助使用者灵活划分用户群体、细分用户流量。移动定向营销原理它是一种定向的、人为可控的、可解释的,并且不完全依赖于用户历史行为、不受投放内容约束、面向用户的个性化服务方…

python读写json_python 读写json数据

json 模块提供了一种很简单的方式来编码和解码JSON 数据。 字符串操作 其中两个主要的函数是json.dumps() 和json.loads() ,要比其他序列化函数库如pickle 的接口少得多。下面演示 1.如何将一个Python 数据结构转换为JSON 2.如何将一个JSON 编码的字符串转换回一个P…

java web逻辑删除代码_MyBatis-Plus之逻辑删除的实现

特别是互联网项目,对于数据一般是不能删除的(涉及到后面的数据分析),这就涉及到逻辑删除。所谓逻辑删除指的是数据并不是真正的删除,只是改数据表对应数据的状态(数据表中通常有一列叫delFlag,以此标识正常状态或删除状态)。逻辑删除一般都是…

debian安装java jdk_Linux(Centos、Debian)之安装Java JDK及注意事项(转)

a.因为Java JDK区分32位和64位系统,所以在安装之前必须先要判断以下我们的Centos、Debian系统为多少位系统,命令如下:uname -a解释:如果有x86_64就是64位的,没有就是32位的。后面是X686或X86_64则内核是64位的&#xf…

python程序化 k线指定时间更新_Python之路 14 K线时间序列管理器

在上一章中介绍了如何通过实时行情推送的Tick数据合成1分钟K线,并且如何通过1分钟K线来合成更大周期的K线。本章主要介绍如何将K线通过numpy缓存到Array,形成时间序列,并且同时生成一些技术指标。 首先 导入包 talib主要用于计算各种技术分析…

python手把手教程_【Python 1-7】Python手把手教程之——详解列表List

列表 作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) 列表,在其他语言中又被称为数组,是由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表。你也可以创建几个列表&#xff0…

[Typecho主题] modernist

Modernist 主题来自 Hexo. 是基于 modernist theme 修改 演示站点 安装 git clone https://github.com/uidea/typecho-theme-modernist.git themes/modernist 启用 外观 -> Modernist Theme -> 启用即可 更新 cd themes/modernist git pull 下载地址:https://…

python预定义_【Python】python类中方法的预定义

知乎问题:像这个图片里面显示的,self.prediction首先声明了下然后下面给出了定义,然后optimize又调用这个函数但是没有用self.prediction()这样的方式而是像用变量一样直接用self.prediction,,像请教一下这是什么操作?…

python md5加密_Python MD5加密实例详解

详解Python MD5加密 Python 3下MD5加密 # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str this is a md5 test. # 创建md5对象 hl hashlib.md5() # Tips # 此处必须声明encode # 若写法为hl.update(str) 报错为&…

【IOS-COCOS2D-X 游戏开发之四】COCOS2DX创建ANDROID NDK新项目并编译导入ECLIPSE中正常运行!...

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/645.html此篇针对较早的-x引擎讲解的,最新的可以参考: 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2…

2天后mysql_mysql 学习笔记 第二天

插入表格数据:Insert into table_name set columns_1value1,columns_2value2,对于没有赋值的列,将会取默认值,并且这个方法只能一次插入一个数据利用文本方式插入数据:Load data local infile‘径’into table table_name;Select 的通用形式:…

mysql查看日志命令_面对成百上千台服务器产生的日志,试试这款轻量级日志搬运神器!...

Filebeat简介Filebeat是一款轻量级日志采集器,可用于转发和汇总日志与文件。Filebeat内置有多种模块(Nginx、MySQL、Redis、Elasticsearch、Logstash等),可针对常见格式的日志大大简化收集、解析和可视化过程,只需一条…

css 百分比 怎么固定正方形_css样式写出三角形,宽高自适应的正方形,扇形!...

闲来无事练习一下常见的css样式,希望大家能指点一二&#xff01;1用css实现一个三角形&#xff01;原理用border属性<!实现它的原理那就要弄明白border属性&#xff0c;border是一个复合属性border-width 指定边框的宽度border-style 指定边框的样式border-color 指定边框的…

用lsb_release -a 查看linux版本

1、要通过yum 安装上这个命令的软件包 yum -y install redhat-lsb 2、lsb_release -a 查看linux版本信息

java爬虫自动识别验证码_简单Java爬虫(一)爬取手机号码

原创 野狗菌 希望你能喜欢 今天关于本文&#xff1a;本文介绍一个简单Java爬虫&#xff0c;获取网页源码&#xff0c;爬取电话号码。本篇教程用我的博客一个测试网页演示。——野狗菌【希望你能喜欢】测试页面&#xff1a;https://www.wayteam.xyz/archives/phonenumber源代码&…

java分隔符 字符串_用Java构建带分隔符的字符串的最佳方法是什么?

在Java应用程序中工作时&#xff0c;最近我需要组合一个用逗号分隔的值列表&#xff0c;以传递给另一个Web服务&#xff0c;而无需事先知道会有多少个元素。我能想到的最好的办法是这样的&#xff1a;public String appendWithDelimiter( String original, String addition, St…