0% found this document useful (0 votes)
53 views

Multi Threading

Multi-programming allows a computer to run multiple programs simultaneously by rapidly switching between them, keeping the CPU occupied at all times. Multi-tasking provides each user the illusion that their program is running solely, while still allowing other programs to share resources. Multi-threading allows a single process to divide work between multiple concurrent threads to improve performance on multi-processor systems or responsiveness on busy systems like web servers.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views

Multi Threading

Multi-programming allows a computer to run multiple programs simultaneously by rapidly switching between them, keeping the CPU occupied at all times. Multi-tasking provides each user the illusion that their program is running solely, while still allowing other programs to share resources. Multi-threading allows a single process to divide work between multiple concurrent threads to improve performance on multi-processor systems or responsiveness on busy systems like web servers.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

http://interviewquestions.pupilgarage.com/question.jsp?

cd=742

What is multi tasking, multi programming, multi threading?


1. Multi programming: Multiprogramming is the technique of running several programs at a time using timesharing. It allows a computer to do several things at the same time. Multiprogramming creates logical parallelism. The concept of multiprogramming is that the operating system keeps several jobs in memory simultaneously. The operating system selects a job from the job pool and starts executing a job, when that job needs to wait for any i/o operations the CPU is switched to another job. So the main idea here is that the CPU is never idle.

2. Multi tasking: Multitasking is the logical extension of multiprogramming .The concept of multitasking is quite similar to multiprogramming but difference is that the switching between jobs occurs so frequently that the users can interact with each program while it is running. This concept is also known as time-sharing systems. A time-shared operating system uses CPU scheduling and multiprogramming to provide each user with a small portion of time-shared system.

3. Multi threading: An application typically is implemented as a separate process with several threads of control. In some situations a single application may be required to perform several similar tasks for example a web server accepts client requests for web pages, images, sound, and so forth. A busy web server may have several of clients concurrently accessing it. If the web server ran as a traditional single-threaded process, it would be able to service only one client at a time. The amount of time that a client might have to wait for its request to be serviced could be enormous. So it is efficient to have one process that contains multiple threads to serve the same purpose. This approach would multithread the web-server process, the server would create a separate thread that would listen for client requests when a request was made rather than creating another process it would create another thread to service the request. To get the advantages like responsiveness, Resource sharing economy and utilization of multiprocessor architectures multithreading concept can be used.

http://www.wellho.net/solutions/java-a-multithreaded-server-in-java.html

A multithreaded server in Java


Java is a great language for network programming, and for handling applications where you want to do several things at the same time. This article shows you how we've used Java to provide a simple "chatroom" facility on our local area network - all controlled by a daemon process written in Java. Users who want to visit the chatroom can simply telnet to port 1357 on the computer that's running the daemon, and then whatever they type in will be copied to everyone else who's logged in. The daemon will work just as well over a wide area; indeed, if you want to try it out, it's usually running on chat.wellho.net on the internet! THE BASIC PLAN

Planning your application is vital in any object oriented language such as Java - for smaller applications you may choose to use informal methods, but for larger applications you'll need something more formal such as UML, and perhaps even tools such as Rational Rose to manage your model.

Informally, * A

our single

plans parent

for thread

the will

talker await

are new

as

follows: and

connections,

will create a new child thread when it receives a connection. A child thread will exist for each live connection; it will

wait for input from the user of the connection, and when input is received it will echo it to all live users.

Threads will be managed in a Vector from which they will be deleted when the connection is closed A few by special the directives application (such to allow as ".q" users to to quit) log out, will and be to provided

enquire as to who is logged on.

http://www.oracle.com/technetwork/java/socket-140484.html http://zone.ni.com/devzone/cda/tut/p/id/6424 http://en.wikipedia.org/wiki/Computer_multitasking http://en.wikipedia.org/wiki/Multithreading_(computer_hardware) http://en.wikipedia.org/wiki/Simultaneous_multithreading http://en.wikipedia.org/wiki/Thread_(computer_science)#Multithreading

You might also like