Java for for循环中的多线程

时间:2018-08-08 12:52:45

标签: multithreading

这里有一个学生实体列表。

List<Student> student = new Arraylist<Student>();

其中

public student{
  private id;
  private name;
  private class;
  //setter and getter
} 

通过foreach循环:

for(Student std : student){
  System.out.println(std.getName());
}

以上是正常方法。但是如何使用多线程打印它们? 三个学生详细信息一起打印。意味着需要三个线程

2 个答案:

答案 0 :(得分:1)

一个简单的解决方案:

studentList.parallelStream().forEach(System.out::println);

这会将您的列表变成一个,并对该流中的每个元素调用System.out.println()。

非流解决方案当然要复杂得多。需要 you 定义多个线程,包括一个“模式”,这些线程如何在共享列表上工作。

使用“原始线程”进行操作:这是简单明了的东西:您必须将数据“切片”到存储桶中,然后定义适用于不同存储桶的线程。请以here为起点。

答案 1 :(得分:1)

这没有任何实际用途。

for(Student  std:student){
    new Thread(()->{
        System.out.println(std.getName);
        System.out.println(std.getName);
    }).start();
}

这也比上面的答案还差。