资讯专栏INFORMATION COLUMN

用多线程去处理 "123","456","789&

dayday_up / 1967人阅读

import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;

/**
 * 用多线程去处理 "123","456","789" 三个字符串,然后以"147","258","369"输出
 *
 */
public class ThreadSample {
    public static void main(String[] args) throws InterruptedException, ExecutionException {
        String str1 = "123",str2 = "456",str3 = "789";
        ProcessThread thread3 = new ProcessThread(str3, null);
        ProcessThread thread2 = new ProcessThread(str2, thread3);
        ProcessThread thread1 = new ProcessThread(str1, thread2);
        for (int i = 0; i < str1.length(); i++) {
            thread1.setIndex(i);    
            FutureTask future = new FutureTask(thread1);
            new Thread(future).start();
            String outStr = future.get();
            System.out.println(outStr);
        }
    }
}
输出:
147
258
369
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

public class ProcessThread implements Callable{
    private String value;
    private ProcessThread next;
    private Integer index;
    
    public String call() throws Exception {
        if(this.next!=null){
            this.next.setIndex(this.index);
            //开启下一个线程
            FutureTask future = new FutureTask(this.next);
            new  Thread(future).start();
            String nextString = future.get();
            return value.charAt(this.index)+nextString;
        }
        return String.valueOf(value.charAt(this.index));
    }
    public ProcessThread(String value, ProcessThread next) {
        this.value = value;
        this.next = next;
    }
    //set/get 省略
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73533.html

相关文章

  • Python中CSV文件如何分割?下面给大家解答

      小编写这篇文章的主要目的,主要还是给大家讲解一下关于Python中CSV文件的相关内容,教给怎么样去对大批量的数据,去进行分割。比如如何分割CSV文件呢?下面给大家详细解答一下。  一、csv文件介绍  1、csv文件简介  逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本...

    89542767 评论0 收藏0
  • JavaScript正则表达式

    摘要:正则表达式的模式规范是由一系列字符构成的。正则表达式的圆括号作用把单独的项组合成子表达式,以便可以像处理一个单独的单元那样用或者等来对单元格内的项进行处理。 该文章转载自我的博客Alvin-Liu。 JavaScript采用的是Perl语言正则表达式语法的一个相当完整的子集。正则表达式的模式规范是由一系列字符构成的。多数字符(包括字母数字字符)描述的都是按照字面意思进行匹配的字符。比如...

    MorePainMoreGain 评论0 收藏0
  • Python如何异步发送日志到远程服务器?下文给大家解答

      Python整个底层的逻辑还是比较的复杂的,内容也是比较的多,那么,Python如何进行异步处理操作呢?通俗来说,就是怎么同步发送日志到远程服务器?下面就一步一步的给大家解答,请仔细阅读哦。  背景  在Python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日志发送到远端,或者直接...

    89542767 评论0 收藏0
  • python自动化具体代码解析

      小编写这篇文章的主要目的,主要是给大家解读关于python接口自动化的一些详细代码实例,具体是什么呢?下面就给各位读者详细的解答下。  前言  我们做接口自动化的过程中,解决端口依赖的相关数据时,一般会采用正则匹配去进行获取有关的信息。  正则匹配,又被称为正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(RegularExpression,在编码中常缩写为regex、regexp或...

    89542767 评论0 收藏0
  • python数学建模之Numpy应用介绍与Pandas学习

      小编写这篇文章的一个主要目的,主要是来给大家去做一个介绍。介绍的内容主要是关于建模知识的一些相关介绍,包括其Pandas的一些相关学习,就具体的操作内容,下面就给大家详细解答下。  Numpy学习  1 Numpy介绍与应用  1-1Numpy是什么  NumPy是一个运行速度非常快的数学库,一个开源的的python科学计算库,主要用于数组、矩阵计算,包含:  一个强大的N维数组对象ndarr...

    89542767 评论0 收藏0

发表评论

0条评论

dayday_up

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<