代码之家  ›  专栏  ›  技术社区  ›  valerius21

Java等价于pythons/haskells map()函数,具有多处理/多线程功能?[副本]

  •  1
  • valerius21  · 技术社区  · 6 年前

    我知道有些问题和我的相似。但是,它们似乎非常过时(假设jdk7等) 所以,我编写python已经有一段时间了,不得不为大学学习Java。 我知道 there is a feature in Python ,其中可以使用线程/进程池将值列表映射到函数。

    from multiprocessing.dummy import Pool as ThreadPool 
    pool = ThreadPool(4) 
    results = pool.map(my_function, my_array)
    

    我必须在一大组文件上使用这个函数,我必须使用Java(10),我想使用多处理。

    1 回复  |  直到 6 年前
        1
  •  1
  •   xingbin    6 年前

    是的,你可以用 parallelStream ,例如,将整数列表转换为字符串列表:

    List<Integer> list = List.of(1, 2);
    
    List<String> strings =
            list.parallelStream()
                    .map(integer -> String.valueOf(integer)).collect(Collectors.toList());