希望下面的代码能够给你一条思路import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
public class ScheduleTask {
private long syncData = 0;
private final ReadWriteLock lock = new ReentrantReadWriteLock();
private static final ScheduledExecutorService migrateTimer = Executors
.newScheduledThreadPool(4);
private ScheduledFuture> task;
private void init() {
task = migrateTimer.scheduleAtFixedRate(new Runnable() {
public void run() {
starttask();
}
}, 0, 1, TimeUnit.SECONDS);
}
private void starttask() {
lock.writeLock().lock();
try {
syncData++;
System.out.println("跑你要允许的任务");
} finally {
lock.writeLock().unlock();
}
}
public static ScheduleTask getInstance() {
final ScheduleTask instance = new ScheduleTask();
instance.init();
return instance;
}
public long getLongData() {
lock.readLock().lock();
try {
return syncData;
} finally {
lock.readLock().unlock();
}
}
}
2014年10月20日 08:25