Guest User

Untitled

a guest
Jan 17th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.concurrent.Semaphore;
  3. public class DX{
  4. Semaphore mutex; //count
  5. Semaphore db; // w
  6. int count;
  7.  
  8. public DX(){
  9. mutex = new Semaphore(1);
  10. db = new Semaphore(1);
  11. count = 0;
  12. }
  13.  
  14. public void write(){
  15. db.acquire();
  16. System.out.println("Writer is working....");
  17. db.release();
  18. }
  19.  
  20. public void read(){
  21. mutex.acquire();
  22. if (count == 0){
  23. db.acquire();
  24. }
  25. count++;
  26. mutex.release();
  27. System.out.println("Reader is working....");
  28. mutex.acquire();
  29. count--;
  30. if (count == 0){
  31. db.release();
  32. }
  33. mutex.release();
  34. }
  35. public static void main(String[] args){
  36. DX dx = new DX();
  37.  
  38. Reader reader = new Reader(dx);
  39. Writer writer = new Writer(dx);
  40.  
  41. reader.run();
  42. writer.run();
  43. }
  44. }
  45.  
  46. public class Reader extends Thread{
  47. DX dx;
  48. public Reader(DX dx){
  49. super();
  50. this.dx = dx;
  51. }
  52. public void run(){
  53. while(true){
  54. dx.read();
  55. Thread.sleep(100);
  56. }
  57. }
  58. }
  59.  
  60. public class Writer extends Thread{
  61. DX dx;
  62. public Writer(DX dx){
  63. super();
  64. this.dx = dx;
  65. }
  66. public void run(){
  67. while(true){
  68. dx.write();
  69. Thread.sleep(1000);
  70. }
  71. }
  72. }
Add Comment
Please, Sign In to add comment