Advertisement
Guest User

Untitled

a guest
Jul 4th, 2015
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. package org.nullbool.graphview.tasks;
  2.  
  3. import java.util.LinkedList;
  4. import java.util.Queue;
  5.  
  6. /**
  7. * @author Bibl (don't ban me pls)
  8. * @created 5 Jun 2015 22:37:36
  9. */
  10. public class TaskQueueImpl extends Thread implements TaskQueue {
  11.  
  12. private final Queue<Runnable> tasks = new LinkedList<Runnable>();
  13.  
  14. private volatile boolean running = false;
  15.  
  16. @Override
  17. public void shutdown() {
  18. synchronized (this) {
  19. running = false;
  20. this.notify();
  21. }
  22. }
  23.  
  24. @Override
  25. public void submit(Runnable r) {
  26. synchronized (this) {
  27. tasks.add(r);
  28. this.notify();
  29. }
  30. }
  31.  
  32. @Override
  33. public void run() {
  34. while(running) {
  35. synchronized (this) {
  36. if(tasks.isEmpty()) {
  37. try {
  38. wait();
  39. } catch (InterruptedException e) {
  40. e.printStackTrace();
  41. }
  42. }
  43. }
  44.  
  45. Runnable next = tasks.poll();
  46. next.run();
  47.  
  48. try {
  49. Thread.sleep(50);
  50. } catch (InterruptedException e) {
  51. e.printStackTrace();
  52. }
  53. }
  54. }
  55.  
  56. @Override
  57. public void start() {
  58. running = true;
  59. super.start();
  60. }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement