• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

multithreaded programming

 
Ranch Hand
Posts: 102
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
as per my understanding, multithreaded programming makes sense only for multi processor environment? but I think there is more.
can someone throw some more light on this?
 
Greenhorn
Posts: 6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Multithreaded programming has uses even when you are running the application on a single threaded environment. Some of the examples I am aware of are :

a. GUI programming. Say you click on a button on GUI and it triggers a background process that would take some time to complete. With multithreading the background task can be done in a separate thread and GUI can be responsive to user inputs. Without multithreading in such cases the GUI would appear frozen to the user

b. Webserver: Webservers typically serve a lot of requests, and it can span a new thread to service a request and the main thread can continue
to wait for any new incoming requests.
 
Sheriff
Posts: 22783
131
Eclipse IDE Spring VI Editor Chrome Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Multi threaded programming is useful in any situation where you need a background process to run. User interfaces need multiple threads anytime a long task is running, or the entire user interface freezes. And how about scheduled jobs, these use different threads as well.

If you split one large task into several smaller subtasks and run these in parallel you can actually decrease performance when you are not in a multi processor environment. For instance calculating the sum of a large int array (pseudo code):
If any processor gets more than one job then the overhead of context switching when another thread becomes active will cause a performance decrease.
 
reply
    Bookmark Topic Watch Topic
  • New Topic