本文整理汇总了Java中io.reactivex.Scheduler.Worker.dispose方法的典型用法代码示例。如果您正苦于以下问题:Java Worker.dispose方法的具体用法?Java Worker.dispose怎么用?Java Worker.dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类io.reactivex.Scheduler.Worker
的用法示例。
在下文中一共展示了Worker.dispose方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: workerUnsubscriptionDoesNotAffectOtherWorkers
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void workerUnsubscriptionDoesNotAffectOtherWorkers() {
Worker workerA = scheduler.createWorker();
CountingRunnable counterA = new CountingRunnable();
workerA.schedule(counterA, 1, MINUTES);
Worker workerB = scheduler.createWorker();
CountingRunnable counterB = new CountingRunnable();
workerB.schedule(counterB, 1, MINUTES);
workerA.dispose();
runUiThreadTasksIncludingDelayedTasks();
assertEquals(0, counterA.get());
assertEquals(1, counterB.get());
}
示例2: workerPeriodic
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void workerPeriodic() throws Exception {
Task t = new Task(3);
Worker w = SwingSchedulers.edt().createWorker();
try {
Disposable d = w.schedulePeriodically(t, 100, 100, TimeUnit.MILLISECONDS);
Assert.assertTrue(t.await(5, TimeUnit.SECONDS));
d.dispose();
Thread.sleep(500);
Assert.assertEquals(3, t.calls);
} finally {
w.dispose();
}
}
示例3: workerDispose
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void workerDispose() throws Exception {
Task t = new Task(1);
Worker w = SwingSchedulers.edt().createWorker();
try {
Disposable d = w.schedule(t, 500, TimeUnit.MILLISECONDS);
Thread.sleep(100);
d.dispose();
Thread.sleep(500);
Assert.assertEquals(0, t.calls);
} finally {
w.dispose();
}
}
示例4: setFutureRace
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void setFutureRace() {
final Scheduler s = new ParallelScheduler(2, true);
try {
for (int i = 0; i < 1000; i++) {
final Worker w = s.createWorker();
Runnable r1 = new Runnable() {
@Override
public void run() {
w.schedule(ParallelSchedulerTest.this);
}
};
Runnable r2 = new Runnable() {
@Override
public void run() {
w.dispose();
}
};
TestHelper.race(r1, r2, Schedulers.single());
}
} finally {
s.shutdown();
}
}
示例5: workerDisposeCancelsScheduled
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void workerDisposeCancelsScheduled() {
Worker worker = scheduler.createWorker();
CountingRunnable counter = new CountingRunnable();
worker.schedule(counter, 1, MINUTES);
worker.dispose();
runUiThreadTasks();
assertEquals(0, counter.get());
}
示例6: workerTracksDisposedState
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void workerTracksDisposedState() {
Worker worker = scheduler.createWorker();
assertFalse(worker.isDisposed());
worker.dispose();
assertTrue(worker.isDisposed());
}
示例7: disposedWorkerReturnsDisposedDisposables
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void disposedWorkerReturnsDisposedDisposables() {
Worker worker = scheduler.createWorker();
worker.dispose();
Disposable disposable = worker.schedule(new CountingRunnable());
assertTrue(disposable.isDisposed());
}
示例8: worker
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void worker() throws Exception {
Task t = new Task(1);
Worker w = SwingSchedulers.edt().createWorker();
try {
w.schedule(t);
Assert.assertTrue(t.await(5, TimeUnit.SECONDS));
} finally {
w.dispose();
}
}
示例9: workerDelay
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void workerDelay() throws Exception {
Task t = new Task(1);
Worker w = SwingSchedulers.edt().createWorker();
try {
w.schedule(t, 100, TimeUnit.MILLISECONDS);
Assert.assertTrue(t.await(5, TimeUnit.SECONDS));
} finally {
w.dispose();
}
}
示例10: cancelledTask
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
void cancelledTask(Scheduler s) throws InterruptedException {
try {
Worker w = s.createWorker();
try {
assertFalse(w.isDisposed());
Disposable d = w.schedule(this, 200, TimeUnit.MILLISECONDS);
assertFalse(d.isDisposed());
d.dispose();
assertTrue(d.isDisposed());
Thread.sleep(300);
assertEquals(0, calls.get());
w.dispose();
assertTrue(w.isDisposed());
} finally {
w.dispose();
}
} finally {
s.shutdown();
}
}
示例11: testDispose
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void testDispose() {
Scheduler s = SchedulerHelper.withThreadId(Schedulers.trampoline(), "boo");
Worker w = s.createWorker();
Assert.assertFalse(w.isDisposed());
w.dispose();
Assert.assertTrue(w.isDisposed());
}
示例12: race
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void race() throws Exception {
Worker w = Schedulers.newThread().createWorker();
try {
for (int i = 0; i < 1000; i++) {
Integer[] value = { 0, 0 };
TestObserver<Integer> to = new TestObserver<Integer>() {
@Override
public void onSuccess(Integer v) {
value[1] = value[0];
super.onSuccess(v);
}
};
SingleSubject<Integer> subj = SingleSubject.create();
subj.observeOn(Schedulers.single())
.onTerminateDetach()
.subscribe(to);
AtomicInteger wip = new AtomicInteger(2);
CountDownLatch cdl = new CountDownLatch(2);
w.schedule(() -> {
if (wip.decrementAndGet() != 0) {
while (wip.get() != 0);
}
subj.onSuccess(1);
cdl.countDown();
});
Schedulers.single().scheduleDirect(() -> {
if (wip.decrementAndGet() != 0) {
while (wip.get() != 0);
}
to.cancel();
value[0] = null;
cdl.countDown();
});
cdl.await();
Assert.assertNotNull(value[1]);
}
} finally {
w.dispose();
}
}
示例13: direct
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void direct() {
TestScheduler test = new TestScheduler();
SharedScheduler scheduler = new SharedScheduler(test);
scheduler.scheduleDirect(this);
test.advanceTimeBy(1, TimeUnit.MILLISECONDS);
assertEquals(1, calls);
scheduler.scheduleDirect(this, 1, TimeUnit.MILLISECONDS);
test.advanceTimeBy(1, TimeUnit.MILLISECONDS);
assertEquals(2, calls);
scheduler.schedulePeriodicallyDirect(this, 1, 1, TimeUnit.MILLISECONDS);
test.advanceTimeBy(10, TimeUnit.MILLISECONDS);
assertEquals(12, calls);
Worker worker = scheduler.createWorker();
worker.dispose();
assertSame(Disposables.disposed(), worker.schedule(this));
assertSame(Disposables.disposed(), worker.schedule(this, 1, TimeUnit.MILLISECONDS));
}
示例14: noleak
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void noleak() throws Exception {
SharedScheduler scheduler = new SharedScheduler(Schedulers.io());
try {
Worker worker = scheduler.createWorker();
worker.schedule(Functions.EMPTY_RUNNABLE);
System.gc();
Thread.sleep(500);
long before = memoryUsage();
System.out.printf("Start: %.1f%n", before / 1024.0 / 1024.0);
for (int i = 0; i < 200 * 1000; i++) {
worker.schedule(Functions.EMPTY_RUNNABLE, 1, TimeUnit.DAYS);
}
long middle = memoryUsage();
System.out.printf("Middle: %.1f -> %.1f%n", before / 1024.0 / 1024.0, middle / 1024.0 / 1024.0);
worker.dispose();
System.gc();
Thread.sleep(100);
int wait = 400;
long after = memoryUsage();
while (wait-- > 0) {
System.out.printf("Usage: %.1f -> %.1f -> %.1f%n", before / 1024.0 / 1024.0, middle / 1024.0 / 1024.0, after / 1024.0 / 1024.0);
if (middle > after * 2) {
return;
}
Thread.sleep(100);
System.gc();
Thread.sleep(100);
after = memoryUsage();
}
fail(String.format("Looks like there is a memory leak: %.1f -> %.1f -> %.1f", before / 1024.0 / 1024.0, middle / 1024.0 / 1024.0, after / 1024.0 / 1024.0));
} finally {
scheduler.shutdown();
}
}
示例15: shutdown
import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
protected void shutdown(Scheduler s) throws InterruptedException {
try {
Worker w = s.createWorker();
w.dispose();
assertSame(Disposables.disposed(), w.schedule(this));
assertSame(Disposables.disposed(), w.schedule(this, 100, TimeUnit.MILLISECONDS));
assertSame(Disposables.disposed(), w.schedulePeriodically(this, 100, 100, TimeUnit.MILLISECONDS));
s.shutdown();
assertSame(Disposables.disposed(), s.scheduleDirect(this));
assertSame(Disposables.disposed(), s.scheduleDirect(this, 100, TimeUnit.MILLISECONDS));
assertSame(Disposables.disposed(), s.schedulePeriodicallyDirect(this, 100, 100, TimeUnit.MILLISECONDS));
w = s.createWorker();
assertSame(Disposables.disposed(), w.schedule(this));
assertSame(Disposables.disposed(), w.schedule(this, 100, TimeUnit.MILLISECONDS));
assertSame(Disposables.disposed(), w.schedulePeriodically(this, 100, 100, TimeUnit.MILLISECONDS));
assertEquals(0, calls.get());
s.start();
s.scheduleDirect(this);
s.scheduleDirect(this, 100, TimeUnit.MILLISECONDS);
s.schedulePeriodicallyDirect(this, 100, 100, TimeUnit.MILLISECONDS);
w = s.createWorker();
w.schedule(this);
w.schedule(this, 100, TimeUnit.MILLISECONDS);
w.schedulePeriodically(this, 100, 100, TimeUnit.MILLISECONDS);
Thread.sleep(1000);
int c = calls.get();
assertTrue("" + c, c > 6);
} finally {
s.shutdown();
}
}