pharmdock并行运算的java实现
来源:互联网 发布:mysql添加数据 编辑:程序博客网 时间:2024/06/16 22:07
上一篇用python实现的,用到map函数比较方便,用java实现起来可就没那么简单了,需要考虑线程共享数据问题、同步问题
class RunCmd implements Runnable{int index =0;//全局变量,线程共享数据,否则每个线程都会执行一次同一条命令List<File> molsList = new ArrayList<File>();public RunCmd(){File f = new File("/map/ph");getFileList(f);}private void getFileList(File f){File[] filePaths = f.listFiles();for (File mol : filePaths){if (mol.getName().endsWith("_omega2.mol2")) { molsList.add(mol); }}}public void run() {File file = null;while(index < molsList.size()){file=molsList.get(index);index++;System.out.println(Thread.currentThread().getName());String cmd = "···";System.out.println(cmd);try{Process p = Runtime.getRuntime().exec(cmd);p.waitFor();//在cmd执行时其他线程需要等待到其执行完毕,否则会将任务全部提交到后台}catch(IOException e){}catch(InterruptedException i){}}/*该方法会有线程间通信问题Iterator it = list.iterator();while(it.hasNext()){String cmd = "···";System.out.println(cmd);try{Runtime.getRuntime().exec(cmd);}catch(IOException e){}}*/}}class ParRun{public static void main(String[] args){RunCmd r = new RunCmd();Thread t0 = new Thread(r);Thread t1 = new Thread(r);Thread t2 = new Thread(r);Thread t3 = new Thread(r);Thread t4 = new Thread(r);Thread t5 = new Thread(r);t0.start();t1.start();t2.start();t3.start();t4.start();t5.start();}}
现在暂未考虑同步问题,以后改进
参考的文章:
http://bbs.csdn.net/topics/390773319
0 0
- pharmdock并行运算的java实现
- 用python map函数实现pharmdock并行运算
- javascript的并行运算
- R安装并行计算工具包snowfall实现并行运算资源
- 并行计算--Java--求π并行实现
- 并行计算--Java--求π并行实现
- 并行运算
- java实现集合的运算
- Java实现表达式的运算
- 快速排序java并行实现
- 一个用于实现并行执行的 Java actor 库
- 一个用于实现并行执行的 Java actor 库
- MatLab的多线程(并行运算)
- CUDA学习--矩阵乘法的并行运算
- 并行运算框架OpenCL的一些基本概念
- 一些并行压缩的实现
- SVD分解的并行实现
- Kmeans 的 CUDA 并行实现
- VB 里常用的延时方法
- 关于sql为表添加描述信息,为列添加描述信息的写法
- Material DesignDrawerLayout的旋转箭头的实现方式。
- Https为什么比Http安全呢?
- 修改webbrowser的User-Agent
- pharmdock并行运算的java实现
- 对不懂技术人的忠告
- PB [Grid风格数据窗口改变线条颜色] 的变通实现方法(也可以成为 带表头的Grid数据窗口)
- Exchange Server 2010安装及测试(Part3)
- 开头决胜武器:软文开头的4种常用写法
- web用户体验相关
- spring+springMVC+Mybatis+dwz 开发
- scrapy爬虫起步(3)-- 利用规则实现多页面抓取
- Java上的try catch并不影响性能