Android Open Source - androidcodes Prod Consumer Prob






From Project

Back to project page androidcodes.

License

The source code is released under:

GNU General Public License

If you think the Android project androidcodes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.java.thread;
// ww w  .j a v a  2 s.  c  o m
import java.util.ArrayList;
import java.util.concurrent.BlockingQueue;

class Consumer implements Runnable {
  private ArrayList<Integer> list;

  public Consumer(ArrayList<Integer> list) {
    this.list = list;
  }

  @Override
  public void run() {

    while (true) {
      try {
        System.out.println("CONSUMING ");
        consume();
      } catch (InterruptedException e) {

        e.printStackTrace();
      }
    }
  }

  public void consume() throws InterruptedException {
    synchronized (list) {
      while (list.isEmpty()) {
        list.wait();
      }

    }
    synchronized (list) {
      list.remove(0);
      list.notifyAll();

    }

  }

}

class Producer implements Runnable {
  private ArrayList<Integer> list;

  public Producer(ArrayList<Integer> list) {
    this.list = list;
  }

  @Override
  public void run() {

    for (int i = 0; i < 7; i++) {
      try {
        System.out.println("PRODUCING " + i);
        produce(i);
      } catch (InterruptedException e) {

        e.printStackTrace();
      }
    }
  }

  public void produce(int i) throws InterruptedException {
    synchronized (list) {
      while (list.size() >= 7) {
        list.wait();
      }

    }
    synchronized (list) {
      list.add(i);
      list.notifyAll();

    }
  }

}

public class ProdConsumerProb {

  public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<Integer>();

    Thread p = new Thread(new Producer(list));
    Thread c = new Thread(new Consumer(list));
    p.start();
    c.start();

  }

}




Java Source Code List

com.app.citypediav2.Constants.java
com.app.citypediav2.CustomButton.java
com.app.citypediav2.CustomEditText.java
com.app.citypediav2.CustomText.java
com.app.citypediav2.DetailsActivity.java
com.app.citypediav2.ItemListActivity.java
com.app.citypediav2.ItemListAdapter.java
com.app.citypediav2.ListAdapterOptions.java
com.app.citypediav2.MainActivity.java
com.app.citypediav2.MainApplication.java
com.app.citypediav2.Options.java
com.app.citypediav2.receivers.BootCompletedBroadcastReceiver.java
com.app.citypediav2.receivers.ConnectionChangeReceiver.java
com.app.citypediav2.services.DataLoggingService.java
com.app.citypediav2.utils.AppUtils.java
com.app.citypediav2.utils.ArticleTextExtractor.java
com.app.citypediav2.utils.Constants.java
com.app.citypediav2.utils.LogUtils.java
com.app.citypediav2.utils.PrefUtils.java
com.app.twitterclient.model.TwitterBackend.java
com.app.twitterclient.utils.AppUtils.java
com.app.twitterclient.utils.ConnectionDetector.java
com.app.twitterclient.utils.ConsumerKeyConstants.java
com.app.twitterclient.utils.LogUtils.java
com.app.twitterclient.view.BootActivity.java
com.app.twitterclient.view.HomeActivity.java
com.app.twitterclient.view.NewAccountActivity.java
com.app.twitterclient.view.TwitterAuthActivity.java
com.binarysearch.BinarySearch.java
com.citypedia.app.enities.Atms.java
com.citypedia.app.enities.Cabs.java
com.citypedia.app.enities.Gyms.java
com.citypedia.app.enities.PetrolPumps.java
com.citypedia.app.enities.PlacesToVisit.java
com.citypedia.app.enities.Restaurants.java
com.citypedia.app.providers.CityDB.java
com.citypedia.app.providers.CityPediaProvider.java
com.citypedia.app.providers.ContentDescriptor.java
com.info.magazine.MainActivity.java
com.java.thread.ConditionExample.java
com.java.thread.DeadLock.java
com.java.thread.Main.java
com.java.thread.ProdConsumerProb.java
com.java.thread.SampleThread.java
com.java.thread.package-info.java
com.lists.LinkedListImpl.java
com.pract.threadpool.CustomQueue.java
com.pract.threadpool.MyQueue.java
com.pract.threadpool.TestThreadPoolManager.java
com.pract.threadpool.ThreadPoolManager.java
com.pract.threadpool.Worker.java
com.queues.QueuesImpl.java
com.rjil.logcollector.DeviceBroadcastReceiver.java
com.rjil.logcollector.LogCollectorService.java
com.rjil.logcollector.LogDumper.java
com.sorting.InsertionSort.java
com.sorting.package-info.java
com.stacks.BracketChecker.java
com.stacks.StackImpl.java
com.stacks.StockSpan.java