add a newer timer and two files to test it
[mfw.git] / src / mfw / timer / newer / ClockThreadGroup.java
blob3a67f12edd292c78597c67c517c09280076336c0
1 /**
2 * Copyright 2011 Huize Dai <geb.1989@gmail.com>
4 * This file is part of MFW.
6 * MFW is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * MFW is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with MFW. If not, see <http://www.gnu.org/licenses/>.
19 package mfw.timer.newer;
21 public class ClockThreadGroup {
23 private ClockThread[] clockPool;
24 private int i = 0;
26 public ClockThreadGroup(int count, boolean isSeries) {
27 clockPool = new ClockThread[count];
28 if (isSeries) {
29 TimerEvent event = new TimerEvent() {
31 public boolean isContinue() {
32 return true;
35 for (int i = 0; i < clockPool.length; i++) {
36 (clockPool[i] = new ClockThread(event)).start();
38 } else {
39 for (int i = 0; i < clockPool.length; i++) {
40 (clockPool[i] = new ClockThread()).start();
45 public void add(TimerEvent event, long diff) {
46 ClockThread clock;
47 synchronized (this) {
48 clock = clockPool[i = (i + 1) % clockPool.length];
50 clock.add(event, diff);
53 public void close() {
54 for (int i = 0; i < clockPool.length; i++) {
55 clockPool[i].close();