For a travel booking web application, where there are 100 concurrent users logged in,
should ticket booking and generating an “E-Ticket Number” be implemented by a “synchronized” or a “static synchronized” method?
For a travel booking web application, where there are 100 concurrent users logged in,
Share
Well, are you aware of the difference between a static method and an instance method in general?
The only difference that
synchronizedmakes is that before the VM starts running that method, it has to acquire a monitor. For an instance method, the lock acquired is the one associated with the object you’re calling the method on. For a static method, the lock acquired is associated with the type itself – so no other threads will be able to call any other synchronized static methods at the same time.In other words, this:
is roughly equivalent to:
Generally I tend not to use synchronized methods at all – I prefer to explicitly synchronize on a private lock reference:
You haven’t provided nearly enough information to determine whether your method should be a static or instance method, or whether it should be synchronized at all. Multithreading is a complex issue – I strongly suggest that you read up on it (through books, tutorials etc).