当前位置: 首页>>代码示例>>Java>>正文


Java Worker.dispose方法代码示例

本文整理汇总了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());
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:17,代码来源:HandlerSchedulerTest.java

示例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();
    }
}
 
开发者ID:akarnokd,项目名称:RxJava2Swing,代码行数:20,代码来源:SwingSchedulersTest.java

示例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();
    }
}
 
开发者ID:akarnokd,项目名称:RxJava2Swing,代码行数:20,代码来源:SwingSchedulersTest.java

示例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();
    }
}
 
开发者ID:akarnokd,项目名称:RxJava2Extensions,代码行数:27,代码来源:ParallelSchedulerTest.java

示例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());
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:13,代码来源:HandlerSchedulerTest.java

示例6: workerTracksDisposedState

import io.reactivex.Scheduler.Worker; //导入方法依赖的package包/类
@Test
public void workerTracksDisposedState() {
    Worker worker = scheduler.createWorker();
    assertFalse(worker.isDisposed());

    worker.dispose();
    assertTrue(worker.isDisposed());
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:9,代码来源:HandlerSchedulerTest.java

示例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());
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:9,代码来源:HandlerSchedulerTest.java

示例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();
    }
}
 
开发者ID:akarnokd,项目名称:RxJava2Swing,代码行数:14,代码来源:SwingSchedulersTest.java

示例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();
    }
}
 
开发者ID:akarnokd,项目名称:RxJava2Swing,代码行数:14,代码来源:SwingSchedulersTest.java

示例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();
    }
}
 
开发者ID:akarnokd,项目名称:RxJava2Extensions,代码行数:29,代码来源:ParallelSchedulerTest.java

示例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());
}
 
开发者ID:davidmoten,项目名称:rxjava2-extras,代码行数:9,代码来源:SchedulerHelperTest.java

示例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();
    }
}
 
开发者ID:akarnokd,项目名称:akarnokd-misc,代码行数:50,代码来源:SingleObserveOnRaceTest.java

示例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));
}
 
开发者ID:akarnokd,项目名称:RxJava2Extensions,代码行数:32,代码来源:SharedSchedulerTest.java

示例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();
    }
}
 
开发者ID:akarnokd,项目名称:RxJava2Extensions,代码行数:55,代码来源:SharedSchedulerTest.java

示例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();
    }
}
 
开发者ID:akarnokd,项目名称:RxJava2Extensions,代码行数:55,代码来源:ParallelSchedulerTest.java


注:本文中的io.reactivex.Scheduler.Worker.dispose方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。