我需要创建两个线程,一个调用调度程序执行器服务,另一个在无限循环中运行以获取和处理文件。
我使用以下代码:
ScheduledExecutorService executor = new ScheduledThreadPoolExecutor(1);
executor.scheduleAtFixedRate(new Runnable() {
public void run()
{
obj.checkFileExist();
obj.enqueue();
}
}, 0, 1, TimeUnit.MINUTES);
在一个无限循环中,我一个一个地处理文件:
public class processModel extends Thread{
public static void getQueueSize(int size)
{
System.out.println("getting queue size");
}
public void dequeue()
{
// dequeue the queue
System.out.println("dequeue");
}
public void processFile()
{
// process the file
System.out.println("process file");
}
public static void main(String[] args) {
final boolean flag = true;
final int size = 9;
final processModel obj = new processModel();
Thread t1 = new Thread(){
public void run()
{
while(flag)
{
obj.dequeue();
obj.processFile();
getQueueSize(size);
}
}
};
t1.start();
}
}
我怎样才能同时实现两者?
- 线程 1 - 检查文件夹中是否存在文件。如果是,则将其排入队列,否则休眠一分钟。-调度程序可以执行此操作
- 线程 2 - 如果队列不为空,则一一处理。否则睡一分钟
如何同时运行这 2 个线程。如果您显示一些代码,它将对我有很大帮助。