ExecutorService executor1 = Executors.newSingleThreadExecutor();
ExecutorService executor2 = Executors.newSingleThreadExecutor();
ExecutorService executor3 = Executors.newSingleThreadExecutor();
ArrayBlockingQueue<String> abq = new ArrayBlockingQueue<String>(1000);
try {
String line;
InputStream is = file.getInputStream();
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
String[] values = line.split(",");
List<String> valuesList = Arrays.asList(values);
for(String valueList : valuesList) {
abq.put(valueList);
executor2.execute(new Runnable () {
public void run() {
System.out.println(valueList + Thread.currentThread().getName());
}
});
我不知道我是否明白你想做什么,但我会这样做:我创建了3个线程并以不同的方式命名它们,根据名称,我让它们运行3种不同的方法:第一种方法读取文件,并将结果放在所有trheads共享的arraylist和静态的arraylist中;第二种方法有一个无限循环(或一个任务,如果您想做一些优化,则每隔一定时间运行一次),它总是获取arraylist的第一个元素,处理它,并将其放在另一个arraylist中,这也是共享的和静态的;第三个线程也有一个循环(或任务),它总是获取第一个元素,并将其打印到文件中。
我会这么做,但也许我不明白,如果你需要写信给我
(谷歌翻译从:意大利语到:英语)
问题内容: 我有一个由5000个IP地址组成的arraylist。对于每个IP地址,我要执行SNMPGet请求和FTPDownload命令。我想以一种方式实现它,其中一次,前五个IP地址同时运行2个不同的线程。执行完这些IP地址后,将在这些线程上执行接下来的2个IP地址。有人可以帮忙吗? 在这里,连接是扩展线程的类,要实现的工作在其run()方法中编写。请帮忙。 问题答案: Executor框架将
问题内容: 我有2个线程(线程1和线程2)。而且我有信号处理。每当发生线程2时,都应处理该信号。为此,我写了下面的程序 我编译并运行该程序。每1秒打印一次“ thread1 active”,每3秒打印一次“ thread2 active”。 现在我生成了。但是它会像上面那样显示“ thread1 active”和“ thread2 active”消息。再次生成了,现在每3秒仅打印一次“ threa
我的问题陈述。读取包含1000万数据的csv文件,并将其存储在数据库中。用尽可能少的时间 我使用java的简单多线程执行器实现了它,其逻辑几乎与spring batch的chunk相似。从csv文件中读取预配置数量的数据,然后创建一个线程,并将数据传递给线程,该线程验证数据,然后写入多线程运行的文件。完成所有任务后,我将调用sql loader来加载每个文件。现在我想把这段代码移到spring b
问题内容: 在面试中被问到这个问题,试图解决…但是没有成功。我想到了使用CyclicBarrier 有三个线程T1打印1,4,7 … T2打印2,5,8 …,T3打印3,6,9…。您如何同步这三个来打印序列1,2,3,4,5,6,7,8,9…。 我尝试编写并运行以下代码 输出 谁能帮助我纠正错误? 类似的 线程同步查询-同步三个线程以打印012012012012.....无法正常工作 问题答案:
在采访中被问到这个问题,试图解决它。。。但并不成功。我想用自行车旅行车 有三个线程T1打印1,4,7... T2打印2,5,8......和T3打印3,6,9......你如何将这三个同步到打印序列1,2,3,4,5,6,7,8,9...... 我试着写作 输出 有人能帮我纠正错误吗? 类似的Ques线程同步-将三个线程同步到打印012。。。。。不起作用
我正在尝试使用多个处理器类在处理器步骤中处理记录。这些类可以并行工作。目前我已经编写了一个多线程步骤,其中我 设置处理器类的输入和输出行 提交给遗嘱执行人服务 获取所有未来对象并收集最终输出