io.reactivex.Scheduler.shutdown()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(7.5k)|赞(0)|评价(0)|浏览(192)

本文整理了Java中io.reactivex.Scheduler.shutdown()方法的一些代码示例,展示了Scheduler.shutdown()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Scheduler.shutdown()方法的具体详情如下:
包路径:io.reactivex.Scheduler
类名称:Scheduler
方法名:shutdown

Scheduler.shutdown介绍

[英]Instructs the Scheduler instance to stop threads, stop accepting tasks on any outstanding Worker instances and clean up any associated resources with this Scheduler.

Implementations should make sure the call is idempotent, thread-safe and should not throw any RuntimeException if it doesn't support this functionality.
[中]指示调度程序实例停止线程,停止接受任何未完成的工作程序实例上的任务,并清理与此调度程序关联的所有资源。
实现应该确保调用是幂等的、线程安全的,如果不支持此功能,则不应该抛出任何RuntimeException。

代码示例

代码示例来源:origin: ReactiveX/RxJava

  1. /**
  2. * Shuts down the standard Schedulers.
  3. * <p>The operation is idempotent and thread-safe.
  4. */
  5. public static void shutdown() {
  6. computation().shutdown();
  7. io().shutdown();
  8. newThread().shutdown();
  9. single().shutdown();
  10. trampoline().shutdown();
  11. SchedulerPoolFactory.shutdown();
  12. }

代码示例来源:origin: redisson/redisson

  1. /**
  2. * Shuts down the standard Schedulers.
  3. * <p>The operation is idempotent and thread-safe.
  4. */
  5. public static void shutdown() {
  6. computation().shutdown();
  7. io().shutdown();
  8. newThread().shutdown();
  9. single().shutdown();
  10. trampoline().shutdown();
  11. SchedulerPoolFactory.shutdown();
  12. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void startRace() {
  3. final Scheduler s = new SingleScheduler();
  4. for (int i = 0; i < TestHelper.RACE_DEFAULT_LOOPS; i++) {
  5. s.shutdown();
  6. Runnable r1 = new Runnable() {
  7. @Override
  8. public void run() {
  9. s.start();
  10. }
  11. };
  12. TestHelper.race(r1, r1);
  13. }
  14. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void createIoScheduler() {
  3. final String name = "IoSchedulerTest";
  4. ThreadFactory factory = new ThreadFactory() {
  5. @Override
  6. public Thread newThread(Runnable r) {
  7. return new Thread(r, name);
  8. }
  9. };
  10. final Scheduler customScheduler = RxJavaPlugins.createIoScheduler(factory);
  11. RxJavaPlugins.setIoSchedulerHandler(new Function<Scheduler, Scheduler>() {
  12. @Override
  13. public Scheduler apply(Scheduler scheduler) throws Exception {
  14. return customScheduler;
  15. }
  16. });
  17. try {
  18. verifyThread(Schedulers.io(), name);
  19. } finally {
  20. customScheduler.shutdown();
  21. RxJavaPlugins.reset();
  22. }
  23. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void createNewThreadScheduler() {
  3. final String name = "NewThreadSchedulerTest";
  4. ThreadFactory factory = new ThreadFactory() {
  5. @Override
  6. public Thread newThread(Runnable r) {
  7. return new Thread(r, name);
  8. }
  9. };
  10. final Scheduler customScheduler = RxJavaPlugins.createNewThreadScheduler(factory);
  11. RxJavaPlugins.setNewThreadSchedulerHandler(new Function<Scheduler, Scheduler>() {
  12. @Override
  13. public Scheduler apply(Scheduler scheduler) throws Exception {
  14. return customScheduler;
  15. }
  16. });
  17. try {
  18. verifyThread(Schedulers.newThread(), name);
  19. } finally {
  20. customScheduler.shutdown();
  21. RxJavaPlugins.reset();
  22. }
  23. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void createComputationScheduler() {
  3. final String name = "ComputationSchedulerTest";
  4. ThreadFactory factory = new ThreadFactory() {
  5. @Override
  6. public Thread newThread(Runnable r) {
  7. return new Thread(r, name);
  8. }
  9. };
  10. final Scheduler customScheduler = RxJavaPlugins.createComputationScheduler(factory);
  11. RxJavaPlugins.setComputationSchedulerHandler(new Function<Scheduler, Scheduler>() {
  12. @Override
  13. public Scheduler apply(Scheduler scheduler) throws Exception {
  14. return customScheduler;
  15. }
  16. });
  17. try {
  18. verifyThread(Schedulers.computation(), name);
  19. } finally {
  20. customScheduler.shutdown();
  21. RxJavaPlugins.reset();
  22. }
  23. }

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void createSingleScheduler() {
  3. final String name = "SingleSchedulerTest";
  4. ThreadFactory factory = new ThreadFactory() {
  5. @Override
  6. public Thread newThread(Runnable r) {
  7. return new Thread(r, name);
  8. }
  9. };
  10. final Scheduler customScheduler = RxJavaPlugins.createSingleScheduler(factory);
  11. RxJavaPlugins.setSingleSchedulerHandler(new Function<Scheduler, Scheduler>() {
  12. @Override
  13. public Scheduler apply(Scheduler scheduler) throws Exception {
  14. return customScheduler;
  15. }
  16. });
  17. try {
  18. verifyThread(Schedulers.single(), name);
  19. } finally {
  20. customScheduler.shutdown();
  21. RxJavaPlugins.reset();
  22. }
  23. }

代码示例来源:origin: akarnokd/RxJava2Interop

  1. @Override
  2. public void shutdown() {
  3. source.shutdown();
  4. }

代码示例来源:origin: ReactiveX/RxJava

  1. s.shutdown();
  2. s.shutdown();

代码示例来源:origin: ReactiveX/RxJava

  1. @Test
  2. public void shutdownRejects() {
  3. final int[] calls = { 0 };
  4. Runnable r = new Runnable() {
  5. @Override
  6. public void run() {
  7. calls[0]++;
  8. }
  9. };
  10. Scheduler s = new SingleScheduler();
  11. s.shutdown();
  12. assertEquals(Disposables.disposed(), s.scheduleDirect(r));
  13. assertEquals(Disposables.disposed(), s.scheduleDirect(r, 1, TimeUnit.SECONDS));
  14. assertEquals(Disposables.disposed(), s.schedulePeriodicallyDirect(r, 1, 1, TimeUnit.SECONDS));
  15. Worker w = s.createWorker();
  16. ((ScheduledWorker)w).executor.shutdownNow();
  17. assertEquals(Disposables.disposed(), w.schedule(r));
  18. assertEquals(Disposables.disposed(), w.schedule(r, 1, TimeUnit.SECONDS));
  19. assertEquals(Disposables.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
  20. assertEquals(0, calls[0]);
  21. w.dispose();
  22. assertTrue(w.isDisposed());
  23. }

代码示例来源:origin: akarnokd/RxJava2Interop

  1. @Test
  2. public void startStopNotSupported() {
  3. rx.Scheduler v1Scheduler = mock(rx.Scheduler.class);
  4. io.reactivex.Scheduler v2Scheduler = RxJavaInterop.toV2Scheduler(v1Scheduler);
  5. v2Scheduler.start();
  6. verifyNoMoreInteractions(v1Scheduler);
  7. v2Scheduler.shutdown();
  8. verifyNoMoreInteractions(v1Scheduler);
  9. }

代码示例来源:origin: akarnokd/RxJava2Interop

  1. @Test
  2. public void startStopSupport() {
  3. Scheduler v2Scheduler = mock(Scheduler.class);
  4. rx.Scheduler v1Scheduler = RxJavaInterop.toV1Scheduler(v2Scheduler);
  5. SchedulerLifecycle lc = (SchedulerLifecycle)v1Scheduler;
  6. lc.start();
  7. verify(v2Scheduler).start();
  8. lc.shutdown();
  9. verify(v2Scheduler).shutdown();
  10. }
  11. }

代码示例来源:origin: akarnokd/RxJava2Interop

  1. @Test
  2. public void startStopSupported() {
  3. rx.Scheduler v1Scheduler = mock(rx.Scheduler.class, withSettings().extraInterfaces(SchedulerLifecycle.class));
  4. io.reactivex.Scheduler v2Scheduler = RxJavaInterop.toV2Scheduler(v1Scheduler);
  5. v2Scheduler.start();
  6. ((SchedulerLifecycle)verify(v1Scheduler)).start();
  7. v2Scheduler.shutdown();
  8. ((SchedulerLifecycle)verify(v1Scheduler)).shutdown();
  9. }
  10. }

代码示例来源:origin: com.github.akarnokd/rxjava2-interop

  1. @Override
  2. public void shutdown() {
  3. source.shutdown();
  4. }

代码示例来源:origin: akarnokd/RxJava2Extensions

  1. private void startStop(Scheduler s) {
  2. s.start();
  3. s.shutdown();
  4. s.shutdown();
  5. }

代码示例来源:origin: akarnokd/RxJava2Extensions

  1. @Test
  2. public void startRace() {
  3. for (int i = 0; i < 1000; i++) {
  4. final Scheduler s = new ParallelScheduler(2);
  5. s.shutdown();
  6. Runnable r = new Runnable() {
  7. @Override
  8. public void run() {
  9. s.start();
  10. }
  11. };
  12. TestHelper.race(r, r, Schedulers.single());
  13. }
  14. }

代码示例来源:origin: akarnokd/RxJava2Extensions

  1. void cancelledTask(Scheduler s) throws InterruptedException {
  2. try {
  3. Worker w = s.createWorker();
  4. try {
  5. assertFalse(w.isDisposed());
  6. Disposable d = w.schedule(this, 200, TimeUnit.MILLISECONDS);
  7. assertFalse(d.isDisposed());
  8. d.dispose();
  9. assertTrue(d.isDisposed());
  10. Thread.sleep(300);
  11. assertEquals(0, calls.get());
  12. w.dispose();
  13. assertTrue(w.isDisposed());
  14. } finally {
  15. w.dispose();
  16. }
  17. } finally {
  18. s.shutdown();
  19. }
  20. }

代码示例来源:origin: akarnokd/RxJava2Extensions

  1. @Test
  2. public void delayedNonTracking() {
  3. Scheduler s = new ParallelScheduler(2, false);
  4. try {
  5. for (int i = 0; i < 100; i++) {
  6. Flowable.range(1, 10).hide()
  7. .delay(50, TimeUnit.MILLISECONDS, s)
  8. .test()
  9. .awaitDone(5, TimeUnit.SECONDS)
  10. .assertResult(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
  11. }
  12. } finally {
  13. s.shutdown();
  14. }
  15. }

代码示例来源:origin: akarnokd/RxJava2Extensions

  1. @Test
  2. public void normalTracking() {
  3. Scheduler s = new ParallelScheduler(2, true);
  4. try {
  5. for (int i = 0; i < 100; i++) {
  6. Flowable.range(1, 10).hide()
  7. .observeOn(s, false, 4)
  8. .test()
  9. .awaitDone(5, TimeUnit.SECONDS)
  10. .assertResult(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
  11. }
  12. } finally {
  13. s.shutdown();
  14. }
  15. }

代码示例来源:origin: akarnokd/RxJava2Extensions

  1. @Test
  2. public void delayedTracking() {
  3. Scheduler s = new ParallelScheduler(2, true);
  4. try {
  5. for (int i = 0; i < 100; i++) {
  6. Flowable.range(1, 10).hide()
  7. .delay(50, TimeUnit.MILLISECONDS, s)
  8. .test()
  9. .awaitDone(5, TimeUnit.SECONDS)
  10. .assertResult(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
  11. }
  12. } finally {
  13. s.shutdown();
  14. }
  15. }

相关文章