How to notify Consumer who is blocked at ArrayBlockingQueue.take()

Suppose we have the following codes:
Producer
while (!stop) {
queue.put(sth);
Consumer
while(!stop) {
queue.take();
And suddenly, Producer is stopped while Consumer is hanging on queue.take()。The queue is empty and it will be empty forever. Then Consumer will be blocked forever. How to solve this problem?
Is Thread.interrupt() necessary?
I wonder if there is a better way.
Thank you.

I see.
But I am afraid it's not a good way because this can
only be used to notify Consumer. Who is going to
notify the Producer?
Therefore, I decided to use Thread.interrupt and set
a variable to end the loop.Using Thread.interrupt is, of course, always an option. But in this case I think you could also make use of BlockingQueue.poll:
//Consumer
while(!stop) {
ElementType e = queue.poll(100, TimeUnit.MILLISECONDS);
if(e == null)
  break;
// process element
}

Similar Messages

  • Q: how can i write PL/SQL block to check prerequisite?

    Hello...
    I designed an application using sql*plus statment for creating database and developer for creating forms, for on-line registration system for universties,
    so I need to teach me how can I write pl/sql block to check the prerequisite, taken courses, and complete hours for the students who wants register the courses via Internet.
    thanks alot in advance
    kindly send the answers a.s.a.p

    please repost this in the SQL & PL/SQL forum
    thanks - OTN

  • [HELP] How to records user who use SQLPlus or SQL editor?

    Dear Gurus,
    Is onyone know how to record user who use SQLplus or any SQL editor?
    for instance...
    user1 using SQLplus on monday august 9.30.21 PM...and I have table which record this for audit user.
    Or..
    Can I block user who connect to oracle using SQLPlus?
    If anyone know how to do this..please inform me...
    Thanks and Regards
    Erie

    You can enable Auditing (AUDIT_TRAIL) and audit at the Session Level to record Logon and Log off of a required user. This can be enabled to be recorded in the audit table or operation system file. You can also audit user statements etc.
    For example, to enable auditing connect for user UGONIC
    SQL>audit connect by UGONIC;
    TO disable it
    SQL>noaudit connect by UGONIC;
    Check in the SQL Reference for the AUDIT statement and requirements.
    If you do not want the user to connect at all via SQL*Plus, you can use PRODUCT_USER_PROFILE to disable a users access to SQL*Plus or at the lower level, disable specified SQL*Plus and SQL commands for the user. You need to run the PUPBLD.SQL script as system user (if not run yet) and add records to it as required.
    Example: After running PUPBLD.SQL. This entry stops the user UGONIC from using the drop command at the backend in SQL*Plus.
    INSERT into product_user_profile (product,userid,attribute,char_value,date_value)
    values('SQL*Plus','UGONIC','DROP','DISABLED',NULL);
    Note that if a user is already connected by the profile entry, it is not activated on that session, but on subsequent logons. Again read the requied security documentations for this.
    For both auditing, you need to set the required database intialisation parameters and know where to get the audit records (in tables, views or OS file). For instance, when using tables, you maintain and query tables like audit$ to view the logs. When using OS type logging, it is recorded on the path specified in the AUDIT_FILE_DEST init parameter (In Windows, it is logged in the Windows Event and you can view it from the event viewer).

  • How do I know I have blocked?

    How do I know I have blocked in iMessage from another user?

    Settings > Messages > Blocked shows who is blocked.

  • How can i know who get my photos and messages from my icloud???

    How can i know who get my photos and messages from my icloud???

    Nobody, except the persons who have your username and password or with whom you share photos streams would be able to see anything from you.

  • How can i know who get my photos and messages from my icloud???, How can i know who get my photos and messages from my icloud???

    How can i know who get my photos and messages from my icloud???

    The following website gives you an overview on how your iCloud data is encrypted: https://support.apple.com/kb/HT4865 So as long as you don not share your Apple ID with someone else, everything should be fine.

  • How can you tell who the original sender of a group text is on an iPhone 5, when all that appears is a list of recipients in no particular order

    how can you tell who the original sender of a group text is on an iPhone 5, when all that appears is a list of recipients in no particular order? I can't seem to identify the sender in the details list.

    Start a separate thread to the original sender.

  • How can I get a detail block to requery after a database change?

    Hi, I have a master/detail form. When the status of the master record changes, I need to update a date in one of the detail records. If I use SQL to update the detail row in the database in the ON-CHANGE trigger of the master block, how can I get the detail block to requery to show the change? When I try doing a go_block from any of the ...UPDATE triggers, it says it is restricted.

    wjpenfold,
    Do you have a "Relationship" defined between your Master and Detail blocks? If so, you simply need to requery your master block and the detail block will automatically be requeried. If you can't use a relationship, then you can use can create a timer in the trigger that updates the database and then in the When-Timer-Expired (WTE) trigger you can go to the detail block and execute a query. For example:
    /* Sample On-Change trigger */
    DECLARE
       timer_id  TIMER;
    BEGIN
    ....your code here that performs the update....
       /* Now create an instance of a timer */
       timer_id := Create_Timer ('upd_detail',1,NO_REPEAT);
    END;
    /* Sample Form Level When-Timer-Expired trigger */
    DECLARE
       timer_id   TIMER;
    BEGIN
       -- Find the timer first
       timer_id := FIND_TIMER('upd_detail');
       IF NOT ID_NULL(timer_id) THEN
          GO_BLOCK('DETAIL_BLOCK');
          Execute_Query;
       END IF;
    END;Hope this helps,
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Oracle Forms - How can I create a Data Block with query

    Dear friends I have a question, I couldn't do this..
    I have a sql query, I want to show the datas of the query.. How can I do this. ?
    Data Block Wizard wants a table, view or stored procedure, but I have a query, how can I create a data block with my query.. I m waiting your helps..? Please...
    Semih

    Hi,
    You have two options
    1. create a view and base the block on the view
    2. create a block with a query Data Source Type of 'FROM clause query'
    Hope this helps
    Neil

  • How to find out who created a custom table

    I have searched the forum but didn't find an answer so thought I would put it out here.
    I have a bunch of custom tables that have been created and not assigned to table groups. Some are SM30 wrappers and some aren't. They are all defaulted to &NC& which is a no-no to assign to roles. My question is, how can I see who created these tables so that I can contact them and educate them on table groups? I can't seem to figure this out.
    For instance, I have a custom t-code that calls a custom view and the view is assigned to &NC& in TDDAT.
    Any help appreciated

    Bobbi,
    Try SE15->ABAP Dictionary->Database Tables->"enter table name" and execute->select table and view->Attributes Tab->Last changed on/by.  Field "Last changed on/by" will give you an idea who the last user that made modification on this table.
    Good Luck
    -John N.

  • How to find user who loaded the procs in DB

    Hi guys how to find user who loaded procs in database ..and the date...
    is there anyway..
    i tried to look at all_objects..but it didnot workout..
    thanks

    That is correct. You will only have audit rows for item that you are auditing. I am suggesting you audit all DDL in a production database since production jobs should not perform DDL with the probable exception of truncate. This will provide this type of information going forward. It will not help you answer the question of who created the procedure last week?
    Auditing is explained in the Security manual and the full comand syntax is available in the SQL manual.
    You can easily write a purge the audit data to remove data once it is no longer of interest based on the date the audit row was created.
    HTH -- Mark D Powell --

  • How to find out who's texting you from an iCloud email address?

    how to find out who's texting you from an icloud email address?

    OK after a bit of research I found a way to achieve this.
    I simply looked up the email address in ADUC, then did a search in SP with the display name. I could locate the list and manually confirm it was configured with the incoming email address I was looking for.
    I also found the below script on Stackoverflow, but got "The 'using' keyword is not supported in this version of the language." when I tried to run it. Any idea how to fix that? I'd like to have a script to link a library to an email address istead of the
    manual approach described above.
    http://stackoverflow.com/questions/4974110/sharepoint-how-do-i-find-a-mail-enabled-list-if-i-only-have-the-email
    $SiteCollection = ""
    $EmailAddress = "" # only the part before the @
    # Load SharePoint module if not done yet
    if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {Add-PSSnapin Microsoft.SharePoint.PowerShell;}
    cls
    using System;
    using Microsoft.SharePoint;
    namespace FindListByEmail
    class Program
    {a
    static void Main(string[] args)
    string siteUrl = $SiteCollection;
    string email = $EmailAddress;
    using (SPSite site = new SPSite(siteUrl))
    foreach (SPWeb web in site.AllWebs)
    try
    foreach (SPList list in web.Lists)
    if (list.CanReceiveEmail)
    if (list.EmailAlias != null && list.EmailAlias.Equals(email, StringComparison.InvariantCultureIgnoreCase))
    Console.WriteLine("The email belongs to list {0} in web {1}", list.Title, web.Url);
    Console.ReadLine();
    return;
    finally
    if (web != null)
    web.Dispose();

  • How to find out who has released the purchase order?

    Hi All,
    I have a PR number lets say 10231322 and somebody has release it. Could any one please tell me how to find out who has release it?
    Waiting for your kind replies......
    Thanks in advance.
    Regards,
    Faisal

    Hi,
    When you are in tr ME23N, use the menu: environment > header changes.
    Rgds,
    Suzy

  • How to find out who has deleted the production Query

    Hi All,
    I have searche SD , i can find it for infoobject deletion but i couldn't find it for Query.
    Please let me know is there any possiblity to kow
        How to find out who has deleted the production Query
    Awaiting for your replies.
    cheers

    Hi Mahesh and all,
    Thanks for all your  inputs.
    I have tried with RSRREPDIR tabel , I am unable to see that query at all.
    If I use theT-code SLG1,
      please guide me on the steps with paramets to be given in the respective ..object, subobject etc..
    OR
    could you please suggest any other way.
    cheers
    leena

  • How to find out who had deleted the function moldule? S O S

    how to find out who had deleted the function moldule Thank you very much.

    if this fm was assigned to device class (package) you'll find it in
    tables tadir, e070, e071
    try with name of function module or function group
    hope that helps
    Andreas

Maybe you are looking for

  • Phone extension wiring fault

    i have a problem with my phone extension no dial tone and lots of noise. I've checked the phone through the master socket and its fine, so the problem must be with the extension wiring. I started to check the wiring from the master socket, the first

  • Battery doesn't recharge after recharge cable plug.

    Hello. Lately when I plug the recharge cable to my Macbook it often happens the batter won't recharge. It is plugged to power source but the LED on the cable is not showing recharge and finder say something like "plugged in but not recharging". I hav

  • Restrict data for a user profile

    Hi, I've made a jsp application where i implemented a users profiles for the screens, so i defined that user x can access to the jsp y in insert mode but can't access in remove mode. But now i need to implement a second profile that restrict the data

  • CS2 on Vista64

    I recently purchased a new laptop with 64-bit Vista w/ 4GB RAM. I have installed PSCS2 and Illustrator CS2. These have both been activated and resgistered, but every time I start the applications, I get the EULA screen in PS, which I have accepted 30

  • DROP_MASTER_REPGROUP ORA-23313

    I try to drop a master repgroup and get this error. I need to drop this repgroup because i create other and i want to use the other repgorup. My other chance will change the status of the repgorup that i dont want to use from NORMAL to QUIESCED. How