The Artima Developer Community
Sponsored Link

Java Buzz Forum
Java Tutorial: Java Threads (SimpleThreads)

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Ram N

Posts: 2777
Nickname: ramram
Registered: Jul, 2014

Ram N is Java Programmer
Java Tutorial: Java Threads (SimpleThreads) Posted: Dec 16, 2016 9:43 AM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Ram N.
Original Post: Java Tutorial: Java Threads (SimpleThreads)
Feed Title: JAVA EE
Feed URL: http://ramj2ee.blogspot.com/feeds/posts/default?alt=rss
Feed Description: This blog has viedo tutorials and Sample codes related to below Technologies. 1.J2EE 2.Java 3.Spring 4.Hibernate 5.Database 6.Oracle 7.Mysql 8.Design Patterns
Latest Java Buzz Posts
Latest Java Buzz Posts by Ram N
Latest Posts From JAVA EE

Advertisement

Click here to watch in Youtube: 
https://www.youtube.com/watch?v=2pKSE0LMpOw&list=UUhwKlOVR041tngjerWxVccw

SimpleThreads.java
/*
* SimpleThreads consists of two threads. The first is
* the main thread that every Java application has. The
* main thread creates a new thread from the Runnable
* object, MessageLoop, and waits for it to finish. If
* the MessageLoop thread takes too long to finish, the
* main thread interrupts it.
*
* The MessageLoop thread prints out a series of
* messages. If interrupted before it has printed all
* its messages, the MessageLoop thread prints a message
* and exits.
*/


public class SimpleThreads
{

/*
* Display a message, preceded by the name of the
* current thread
*/

static void threadMessage(String message)
{
String threadName = Thread.currentThread().getName();
System.out.format("%s: %s%n", threadName, message);
}

private static class MessageLoop implements Runnable
{
public void run()
{
String importantInfo[] =
{ "Peter goes to Japan", "Hello welcome to india",
"Twinkle Twinkle little star", "John is a super man" };
try
{
for (int i = 0; i < importantInfo.length; i++)
{
// Pause for 4 seconds
Thread.sleep(4000);
// Print a message
threadMessage(importantInfo[i]);
}
}
catch (InterruptedException e)
{
threadMessage("I wasn't done!");
}
}
}

public static void main(String args[]) throws InterruptedException
{

// Delay, in milliseconds before
// we interrupt MessageLoop
// thread (default one hour).
long patience = 1000 * 60 * 60;

// If command line argument
// present, gives patience
// in seconds.
if (args.length > 0)
{
try
{
patience = Long.parseLong(args[0]) * 1000;
}
catch (NumberFormatException e)
{
System.err.println("Argument must be an integer.");
System.exit(1);
}
}

threadMessage("Starting MessageLoop thread");
long startTime = System.currentTimeMillis();
Thread t = new Thread(new MessageLoop());
t.start();

threadMessage("Waiting for MessageLoop thread to finish");
/*
* loop until MessageLoop thread exits
*/

while (t.isAlive())
{
threadMessage("Still waiting...");
/*
* Wait maximum of 1 second for MessageLoop
* thread to finish.
*/

t.join(1000);
if (((System.currentTimeMillis() - startTime) > patience)
&& t.isAlive())
{
threadMessage("Tired of waiting!");
t.interrupt();
// Shouldn't be long now
// -- wait indefinitely
t.join();
}
}
threadMessage("Finally!");
}
}
Output
main: Starting MessageLoop thread
main: Waiting for MessageLoop thread to finish
main: Still waiting...
main: Still waiting...
main: Still waiting...
main: Still waiting...
main: Still waiting...
Thread-0: Peter goes to Japan
main: Still waiting...
main: Still waiting...
main: Still waiting...
main: Still waiting...
Thread-0: Hello welcome to india
main: Still waiting...
main: Still waiting...
main: Still waiting...
main: Still waiting...
Thread-0: Twinkle Twinkle little star
main: Still waiting...
main: Still waiting...
main: Still waiting...
Thread-0: John is a super man
main: Finally!

Click the below link to download the code:
https://sites.google.com/site/ramj2eev1/home/javabasics/ThreadDemo_simplethreads_app.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava/ThreadDemo_simplethreads_app

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/2bc24748fe4193d8423018abb163c74598759d97/BasicJava/ThreadDemo_simplethreads_app/?at=master

See also:
  • All JavaEE Viedos Playlist
  • All JavaEE Viedos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • Read: Java Tutorial: Java Threads (SimpleThreads)

    Topic: Java Tutorial: Java Threads (Thread join in java | Thread join [ms]) Previous Topic   Next Topic Topic: 9 signs you should quit your programming job

    Sponsored Links



    Google
      Web Artima.com   

    Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use