Simple question.. about synchronizing

what's the difference between these two?
synchronized myMethod () {
  code
myMethod() {
  code1
synchronized(this){
   code2
  code3
and on the second format, is it always 'this' in synchronized()?
thank you                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Hi.
In your first implementation of myMethod(), the lock (on 'this') is acquired upon entry to the method and released upon exit. Only one thread at a time may execute myMethod().
In your second implementation, 'code1' and 'code3' are not synchronized so that many threads could execute 'code1' and/or 'code3' concurrently. You acquire the lock (once again, on 'this') when executing code2.
Regards,
Lance
Lance Walton - [email protected]
Team In A Box - Software without Tragedy
http://www.teaminabox.co.uk

Similar Messages

  • Simple question about mount and delay script

    Hello, I have a simple question about mounting volumes on start up.
    My computer wakes up auto - and then auto there are serveral applescript tasks (mount and start up programs)
    I use this script (daily) for serveral connections with external volumes I always need the connect to. ( In the script I use this code 3 times for other locations) I do this on start up.
    set Uname to "XXX"
    set Pword to "XXX"
    set someVolume to "afp://XXX.XXX.XXX.XXX/XXX/XXX
    mount volume someVolume as user name Uname with password Pword
    (same code for 2 other locations)
    When i do this on start up sometimes the script says there is no connection possible. I guess it's because on start up the connection isn't there. And 1 minute later when computer is total ready the connection is ok. When I run the script then It works. Just sometimes ( In the morning) 'It' want to connect but the script stops. When i do it manually(I run the script again) it works just fine.
    Is it possible that I need a delay? Can someone explain this?
    How would I make a delay handler for this script? Is that the best solution?
    Thanks in advance. This is something small i'm wondering about.
    Colin

    BTW, If you saved the script as an application +(and not as an application bundle)+ you could drop the script on to *Drop Script Backgrounder* (freeware).
    Then the script would run in the background, so, you wouldn't see it running in the Finder.
    <http://www.macupdate.com/info.php/id/7922/drop-script-backgrounder-x>
    Tom

  • A simple question about combo box

    Dear All,
    Just got a simple question about combo box: I have one of these selectors with labels based on filtered rows from a table.
    Is it possible to have one more label that would select all options?
    Like:
    Product A
    Product B
    Product C
    All Product
    Many thanks for your help!
    Gilles

    Hi Gilles,
    The purpose of ComboBox itself to select single option out of many.
    For your purpose, you may have to use "List Builder" which can accomodate 1 or more  to select.
    Please revert for more clarification if you need.
    With best wishes
    BaaRaa.

  • A simple question about performance!

    Hi! I have a simple question about performance. Suppouse that you have a servlet or a class with DB access, and you need to use a value several times in that page. What is best, to assign the value from say, a resultset or a request.getParameter() to a variable or to call the resultset or the request every time you need to retrieve that value? Which option uses less memory, which is faster, etc.?
    Hoping the best fou u
    Raul

    If you need more values from a db, the best is to open some connections (connection pool) and use the for accessing the db.
    To get the data only once, open the connection, get the data, store the data whereever you want: variable (class), hidden control (if you want to send from one page to another by request) and close the connection as quicky as possible.
    The advantage of the first method is that the most time consuming activity (connections opening) is done only once.

  • Question about "synchronized" and "wait"

    Hello, everyone!
    I have seen a piece of code like this,
    synchronized (lock)
    //do operation 1
    lock.wait();
    //do operation 2
    I think in the above piece of code, when a thead finished operation 1, it will release the lock and let other threads waiting for the lock have chance to run the same block of code. Am I correct?
    If I am correct, I have a further question, a "synchronized" block means a set of operations that can not be interrupted, but when invoke "wait" method, the thread running in the "synchronized" block will be terminated (interrupted) by release the lock and other threads will have chance to enter the "synchronized" block. In short, the execution inside the "synchronized" block will be interrupted. So, I wonder whether the above piece of code is correct and conforms to the principle of "synchronized". And what is its real use?
    Thanks in advance,
    George

    Thanks, pkwooster buddy!You're welcome
    I just wondered whether "wait inside a synchronized
    block" technology is thread safe. Please look at the
    following example,wait and synchronized are thread safe.
    public class Foo {
    int mVal= 0;
    public final Object mLock = ...;
    public void doIt() {
    synchronized(mLock) {
    mVal = ...;
    mLock.wait();
    if (mVal == ...) {
    // do something
    } else {
    // do something else
    }If we have two threads, T1 and T2, enter the block in
    their respective order, and T1 is woken up first, T2
    may have tampered with T1's execution path because T2
    changed mVal while T1 was asleep. So T2 manipulate
    instance field mVal is a side-effect.when you do the wait() you give up the lock and the other threads get a chance to run. When you exit the wait() you get the new value of the myVal variable which may have been changed. This is exactly what you want. To make that not thread save you could do
    int temp = myVal;
    wait();
    if(temp == ...)in this case the variable temp contains the old vale of myVal.
    >
    I think the most safest way is never wait inside a
    synchronized block, but it is less efficient. What do
    you think about the trick of wait inside a
    synchronized block? I think you are very experienced
    in thread field from your kind reply.
    Thanks in advance,
    Georgewait(), notify() and notifyAll() are very useful. You need them when you want threads to cooperate in an predictable manner. I recommend that you review the section on consumer and producer classes and wait and notify in the Threads Tutorial. It gives good examples. For a practical example of this you could also take a look at my Multithreaded Server Example. It implements a simple chat server that switches String messages. Look especially at the send(), doSend() and popMessage() methods in the StreamConnection class. These allow the receive thread of one user to send messages out using the send thread of another user. If you have questions about that example, please post the questions on that topic.
    Hope this helps.

  • Simple question about flex and AS 3.0

    Hi, this might sound like a simple question so I apologize...
    I have both a copy of flex 2 and 3, and i want to simply code in AS
    3.0 not mxml. I referred to the help of both flex 2 and 3, and all
    i could come up with is "you can add dynamic behavior to your
    documents using actionscript", which means to me, you only write
    your functions in AS and create instances with mxml (...ugh).
    personally, i find mxml to be ugly (mainly because it looks like
    html to me), and i'd rather not use it. coming from programming in
    an IDE in Java, it seems like it would be nicer to have something
    similar, all the while having the power and cool features of flash.
    I'm not fully educated in this matter so i understand that i could
    be totally wrong.
    i mean, if i have to code in mxml, i will. i'm a web
    programmer for a living, and if a more experience programmer said
    something like "if you don't code mxml in flex, you'll never get a
    job coding in flex", i would trust the advice, and learn the ugly
    code. :)
    yes, i do have Flash cs3, it's great but it seems like a pain
    to me the way you organize classes.... i've only seen a few
    tutorials, ones that explain how you cannot simply import a custom
    class, you have tell your movie to link to it, put it in the same
    directory, or manually name the package, it's sort of confusing.
    my main point here is that i'm very eager to start building
    apps in straight AS 3.0 instead of using flash cs3 (for some
    projects), and it would be cool to get some help or be pointed in
    the right direction.
    to simplify:
    can i write AS 3.0 and only as 3.0 in flex 2 or 3? how? can
    you link me to a tutorial? any advise?
    thanks!

    Hey William, thanks for the post. It's a great coincidence
    because I'm reading that book as well. I'm about half way through
    it, and I love it. I installed mxmlc on my linux box and am writing
    pure AS 3 apps. I think that's the way to go, though I know it's
    not for everybody.
    My problem with mxml is that it has a weird syntax for
    function calls, and it's not as 'intuitive' for a person like me,
    who came from C++ and Java programming in the past. I like writing
    programs in the C++ and Java style syntax, and since so many other
    languages use a similar syntax, I don't see any reason to learn the
    nuances of mxml, unless I was getting paid to do it. As far as I
    can tell there is no benefit.
    I hate using Flash to write flash apps as well, I feel like
    they become messy and confusing, especially when trying to write an
    OOP application. I only use it if I want to move an object in a
    very specific way and can't do it with the Tween methods.

  • A simple Question about % in CR Chart!

    Hi, I have another simple question.
    When i use SQL to storage data and wanna Crystal Report to display the data in chart using %
    which data type should i use?
    float or string?
    and I found when i use 0.12 as 12% in database , It could not display in Crystal Report line chart normally.
    What should I do??
    Please Help!!!
    Thank you VERY MUCH!!!

    If you have the datatype as string from your database then try adding the string field as a summary field in chart and select maximum instead of count and if you have them in number format then you can directly select the percentage in chart.
    Regards,
    Raghavendra

  • Simple question about generate proxy

    Hi guys...
    This is a simple but a truly simple question....
    When trying to create a proxy from our messages interfaces using SPROXY, i'm not able to get the Software component versions that were used from the sld...
    Do I have to export them? Or import them?

    Hi Goncalo,
    Check if it helps...
    Re: SW component version not visible in SPROXY
    Regards
    Anand

  • Simple question about JAVA path

    Hi. I have a simple question , but I spent several hours trying to find an answer.
    How do I know the location of the java executable which is used by Concurrent Manager.
    I already know that running which java under application user will not give me the correct answer

    Maybe you can try like this:
         public String getPath(){
              Class cls=getClass();
              String className=cls.getName();
              String packageName=cls.getPackage().getName();
              System.out.println(className);
              System.out.println(packageName);
              String newClassName=className.replaceAll("\\.", "/");
              String resouceName=newClassName+".class";
              System.out.println(resouceName);
              URL url;
              url=cls.getClassLoader().getResource(resouceName);
              String path="";
              path=url.getFile();
              return path;
         }

  • A very simple question about WF

    hi experts
    I would like to ask a question about workflow
    as u may know there is 'Loop' step in workflow, but I am confused when should I use Loop?
    Is this step used for processing internal table?  if yes, why shouldn't I create a custom BOR method and pass the entire internal table to the method?
    many thanks

    hi
    loop step for not process the internal table,
    this is used to process the some steps repetely until condition True or False.
    we have two loop steps is there
    WHILE AND UNTIL.
    Thanks
    sitaram

  • Simple question about telnet and characters

    Hi all,
    We've installed for the first time a SUN machine. So i think it's for a SUN expert a very simple question.
    Normally when i type a special character it will be dispayed like " � " [alt+132]
    But when i use a telnet session and i type "alt+132" i get a "d" and not "�".
    Does someone know where i must start to find out how this works ?
    Thanks you very much.
    ESP

    This is probably related to the locale your server is in. I don't remember the default locale a box is installed in if you don't specify. I think its "C". I use the UTF-8 or en_US.ISO8859-1 locales at home. At work, usually C but sometimes applications may require UTF-8. BEA Weblogic required this for a project a while back. This is defined in /etc/init/tz.

  • Maybe a simple question about M2T ?

    Hi
    I record in HDV on the JVC GY 101.
    I store on the Focus Enhancements DR HD100 Hard disk recorder.
    The footage I have is in HDV 25frames Progressive.
    The hard disk stores as m2t file and I seem to need to use Mpeg streamclip to convert for Final Cut Pro HD.
    I have a few questions about this.
    1) What should i convert to with mpeg streamclip ? mov, dv m2v etc etc
    2) What setting should I have on FCP with regards to screen size ? The converted clips are 1280x720. When I choose this setting on the sequence, I end up with small black bars left and right of the video on the canvas ???
    3) I will also later have to add some digi beta footage which will be PAL, 720x576 Anamorphic.
    4) What is the best resolution for me here ?
    5) And will the quality of the original m2t file be downgraded by the mpeg streamclip ?
    Thanks so much for your help
    All the best
    Simon

    HDV isn't an "edit-friendly" format, meaning: HDV uses inter-frame compression, combined with a long group-of-pictures (GOP) of 15 frames (12 frames in PAL-equivalent). In intra-frame compression (as in DV, DVCPRO HD, etc.), each video frame is a complete image that stands alone. Inter-frame compression (which is also used in DVDs) uses only a limited number of complete image frames, the GOP determines that number. So, in HDV for example, with a GOP of 15 frames, 1 second of 30fps video contains only 2 complete frames, while the other 28 frames are determined by calculations used in conjunction with the Bi-directional ('B') and Predicted ('P') frames, which contain partial information on the changes in the video in between the 'I' frames which contain whole images. This process, of course, requires much more computer processing power than when editing DV, DVCPRO HD, Uncompressed, etc.
    Editing video streams such as HDV (and XDCAM HD) is made difficult by the reduced number of I-frames. For example, if you make a cut in between the I-frames in the video clip, the computer has to then recalculate new I-frames that are placed at both sides of the cut. Converting on capture/after import to an intra-frame codec like DVCPRO HD, ProRes 422, or Uncompressed will reduce processing power and increase real-time performance, as well as give better performance when adding effects and performing compositing like chroma-keying.
    A common rule of thumb in professional applications is to acquire in HDV, XDCAM HD, etc., but capture and edit in DVCPRO HD, ProRes 422, or even Uncompressed. Native HDV editing is not taboo by any means; it's just not as easy or robust -- especially with the LONG render times. Depending on what kind of work you do (and of course personal preference), you may not see much benefit by transcoding to another format.
    Are you suggesting i have to convert each clip after capture?
    Unless you have an HDV deck with HD-SDI and a capture card, you would have to convert each clip. Batch-conversion would be very useful for that.
    Hope that helps.
    tim

  • A simple question about DAQ data sampling

    Hi all:
    Now I meet a very basic question about DAQ sampling.  I am using NI PCI-6040E DAQ card, SCXI-1001 chasis, SCXI-1102, SCXI1300 terminal block, and SCXI1160 relay module.
    I am not sure , is it possible if I want to test a voltage (1 volt) on a resistor. Now I am connecting the Ch0+ to resistor+ (24 volt), and connecting Ch0- to resistor-(23 volt). So the voltage between resistor+ and resistor- should be 1volt.  Actually, It is working at the first, but after I want to test 9 channels based on this connection. The Measurement & Automation can't read data from the DAQ card. (when I test it by multimeter, I can get the voltage data on the Ch0+ and Ch0- of SCXI1300 terminal block).
    That's strange, does anybody know what' s wrong about it?/
    Thanks a lot

    Hi hanwei,
    According to the specifications of the PCI 6040E (page 3), the input signal and common mode voltage should never exceed 11V from ground.  I believe this is the reason you are able to measure the potential of a battery but not the 24V signal (even though the differential value is only 1V). 
    Best Regards
    Hani R.
    Applications Engineer
    National Instruments

  • Just simple question about java HTTP session mechanism...

    I have one simple question regarding the java HTTP Session Mechanism.
    1) Is there another alternative for the HTTP Session ? If have, what the alternative?
    2) I have been acknowledge that HTTP session is same as cookie system and others say have many different, where is the different..
    thanks

    1) You can always do your own session handling. But why bother when there is one there for you?
    2) The issue with sessions is how to identify the user from the request. Each session gets given a session id. The user has to send that session id with every request they make.
    The standard way is to use a session cookie, which only lasts as long as the browser session. The cookie with the JSESSIONID is sent with every request, thus the server can identify which session a user is in from their cookie.
    Of course you cannot assume that the browser will support cookies, so you need to encode all URLs with the method response.encodeURL(). That method puts the session id into the URL if the browser does not support cookies, or they have them switched off.

  • Simple Questions about ESB and ftp adapter.

    We have the following Business Scenario:
    We have a partner company that provide us a ftp server with some files. We need to transfer these files from this server to other server, we don't need to read the file's content, we just need transfer the files.
    We are planning to use ESB in order to implement this solution but we have the following questions:
    Is it possible use the ftp adapter in order to transfer the files?
    Is there any example available about (Schema is Opaque feature) on a ftp adapter?
    Thanks
    Ramiro Ortiz

    Thank you very much for your reply.
    . I am trying to construct a FTP ( get) adapter with which I would like to do a simple FTP transfer from /var/out directory server xxx.oms.com (say) to a directory /home/in on the server bos1.oms.com (say) could not figure out this in jdeveloper 10.1.3.3 ( do i need upgraded jdeveloper?). The esb server and control exists on server bos1.oms.com. While constructing the adapter in jdeveloper it asks for physical directory? Is this the directory where it will the read the file from? How do I specify if the directory exists on the different server.
    is it something like xxx.oms.com:/var/out
    Please let me know.

  • Question about synchronized

    Hello everyone,
    Suppose I have a method which is a synchronized method (for example, method Foo in the following code block), and in this synchronized method another method which is not synchronized is invoked (for example, method Goo in the following code block). I am wondering when executing in Goo from Foo, whether we still have the synchronized feature (i.e. obtain the lock of "this" object).
    synchronized public Foo()
        Goo();
    private Goo()
    }Thanks in advance,
    George

    Kaj,
    Hi, pls see my post above - I replied to the same question in the other forum and I was pretty sure about my answer until I found it different from ur reply here.
    Here is my reply. Can u kindly guide me to what's wrong in it ?
    if a lock on a sync-ed method extends to all methods being called from it, then the jvm (bcos it has no means of knowing until runtime the method calls from a sync method) has to lock all the methods in a class that has atleast one sync method.
    What this would mean potentially is that the effect of sync-ing one method would be equal to sync-ing all the methods bcos any of the other methods could be potentially called from the sync-ed one.
    The example below is co-erced, but serves to illustrate the point.
         public class Test
        synchronized public  void Foo()
            Goo();
        synchronized public  void Moo()
            Goo();       
            notify();
        private void Goo()
            System.out.println(Thread.currentThread().getName()+" accessing goo");
            try
                if(Thread.currentThread().getName().equals("Th one"))
                     //force thread1 to wait , lets see if thread2 can access it while thread1's waiting on it
                    wait();
            catch(Exception e){}
            System.out.println(Thread.currentThread().getName()+" returning from goo");
    //first thread
    public class MyT implements Runnable
        Test t;
        public MyT(Test t)
            this.t = t;
        /* (non-Javadoc)
         * @see java.lang.Runnable#run()
        public void run()
            t.Foo();
    //second thread
    public class MyT2 implements Runnable
        Test t;
        public MyT2(Test t)
            this.t = t;
        /* (non-Javadoc)
         * @see java.lang.Runnable#run()
        public void run()
            t.Moo();
    //Main
    public class Main
        public static void main(String[] args)
            Test t = new Test();
            Thread th = new Thread(new MyT(t),"Th one");
            Thread th1 = new Thread(new MyT2(t), "Th two");
            th.start();
            th1.start();       
    And the o/p I got was
    Th one accessing goo/*thread one in goo, is in wait() coz of the funny if clause there*/
    Th two accessing goo /*there's no lock on goo, else with thread one in wait(), this wouldve been impossible*/
    Th two returning from goo/*Thread 2 is over with Goo(), will go back and notify Thread 1*/
    Th one returning from goo/*Thread 1 is notified, wakes up and returns :-)*/
    tx,
    ram.

Maybe you are looking for

  • Unable To Pass Input Page Parameter Using PageDef File.

    Dear All, I am currently exploring task flows as I dont have that much knowledge in it. Here's my use case 1. I setup a taskflow which has a Method Call and a View Activity in it. 2. The method call is a default activity which just calls a web servic

  • Setting password field in JOptionPane

    Is it possible for me to set password field in JOptionPane's input field. If possible please help me. It would be very nice if u could email me at the following address [email protected]

  • Fax output with Medium 7 in the condition record

    Hi all, Have any one tried the below scenario? I want to send the fax output to my sold to party.I want to Select the medium as 7 instead of 2 in the condition record and when I double click the line I have an option to select the fax number as recip

  • Line-out used exclusively by iTunes

    Hi there, is there a way, an application maybe, to give iTunes exclusive usage of the line-out in the Macs? I have an AirPort Express station and love the possibility to keep all sounds coming out the built-in speakers while I have my Hi-Fi connected

  • Mountain Lion - Still Waiting

    In trying to upgrade from Lion 10.7.4 to Mountain Lion, I went on the App Store and bought the new OS.  A little graphic popped on to the Launchpad and it says waiting next to it.  That was THREE DAYS AGO!!! So far I'm SO UNIMPRESSED with Mountain Li