SlideShare a Scribd company logo
1 of 13
Download to read offline
Module 08 – Java Threading
Danairat T.
Line ID: Danairat
FB: Danairat Thanabodithammachari
+668-1559-1446
Fundamental Java Programming
The Course Outline
Module 01 – Introduction to Java
Module 02 – Basic Java Programming
Module 03 – Control Flow and Exception Handling
Module 04 – Object Oriented in Java
Module 05 – Java Package and Access Control
Module 06 – Java File IO
Module 07 – Java Networking
Module 08 – Java Threading
Module 08 – Java Threading
• Processes
• Threads
• Java main method as a starting thread
• Creating Thread with extending Thread class
• Creating Thread with implementing Runnable interface
• Java Thread Priority
• Network Server Thread Programming
Processes
A process has a self-contained execution environment.
A process generally has a complete, private set of
basic run-time resources; in particular, each process
has its own memory space.
Processes are often seen as synonymous with
programs or applications. However, what the user sees
as a single application may in fact be a set of
cooperating processes. To facilitate communication
between processes, most operating systems support
Inter Process Communication (IPC) resources, such as
pipes and sockets.
Threads
Multithreaded execution is an essential feature of
the Java platform. Every application has at least
one thread. From the application programmer's
point of view, you start with just one thread,
called the main thread. This thread has the ability
to create additional threads.
Eg. Two Threads are running in
a single core processor
Java main method as a starting thread
class TypicalClass {
public void aMethod() {
System.out.println(Thread.currentThread());
}
public static void main(String[] args) {
// main() is run in a single thread
System.out.println(Thread.currentThread());
TypicalClass hWorld = new TypicalClass();
hWorld.aMethod();
}
} Thread[main,5,main]
Thread[main,5,main]
Defining and Starting a Thread
1.) Runnable Interface. The Runnable interface defines a single
method, run, meant to contain the code executed in the thread.
The Runnable object is passed to the Thread constructor,
public class HelloRunnable implements Runnable {
public void run() {
System.out.println(Thread.currentThread());
System.out.println("Hello from a thread!");
}
public static void main(String args[]) {
System.out.println(Thread.currentThread());
(new Thread(new HelloRunnable())).start();
}
}
Thread[main,5,main]
Thread[Thread-0,5,main]
Hello from a thread!
Defining and Starting a Thread
2.) Subclass Thread. The Thread class itself implements
Runnable, though its run method does nothing. An application
can subclass Thread, providing its own implementation of run,
public class HelloThread extends Thread {
public void run() {
System.out.println(Thread.currentThread());
System.out.println("Hello from a thread!");
}
public static void main(String args[]) {
System.out.println(Thread.currentThread());
(new HelloThread()).start();
}
}
Thread[main,5,main]
Thread[Thread-0,5,main]
Hello from a thread!
Thread Priority
package BasicThread;
public class ThreadPriorityDemo extends Thread{
ThreadPriorityDemo(String name) {
super(name);
}
public void run() {
for (int i = 0; i<100; i++) System.out.print(getName());
}
public static void main(String args[]) {
ThreadPriorityDemo t01 = new ThreadPriorityDemo("T01");
ThreadPriorityDemo t02 = new ThreadPriorityDemo("T02");
t01.start();
t02.start();
t02.setPriority(10); // 1 min, 5 default, 10 max
}
}
Network Server Thread Programming
import java.io.*;
import java.net.*;
public class MyServerThread extends Thread {
ServerSocket s;
public MyServerThread() throws Exception {
super();
// Register service on port 1234
s = new ServerSocket(1234);
}
public void run() {
try {
while (true) {
Socket s1 = s.accept(); // Wait and accept a connection
// Read input from client
ObjectInputStream objInputStream = new
ObjectInputStream(s1.getInputStream());
Customer cust1 = (Customer)objInputStream.readObject();
cust1.setCollectedPoints(3000); // Dummy result
// Write result to client
OutputStream s1out = s1.getOutputStream();
ObjectOutputStream objOutputStream = new
ObjectOutputStream(s1out);
objOutputStream.writeObject(cust1);
// Close the connection, but not the server socket
objOutputStream.close();
s1out.close();
objInputStream.close();
s1.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
MyServerThread myServerThread = new MyServerThread();
myServerThread.start();
}
}
Client Test
import java.net.*;
import java.io.*;
public class MyClient2 {
public static void main(String[] args) throws Exception {
// Open your connection to a server, at port 1234
Socket s1 = new Socket("127.0.0.1", 1234);
// Write object to the socket server
Customer cust1 = new Customer();
cust1.setName("Somchai");
ObjectOutputStream objOutputStream =
new ObjectOutputStream(s1.getOutputStream());
objOutputStream.writeObject(cust1);
// Get result from server
InputStream s1In = s1.getInputStream();
ObjectInputStream objInputStream = new
ObjectInputStream(s1In);
Customer custResult =
(Customer)objInputStream.readObject();
System.out.println(custResult.getName() + " has " +
custResult.getCollectedPoints() + " points");
// When done, just close the connection and exit
objInputStream.close();
s1In.close();
objOutputStream.close();
s1.close();
}
}
Supported Class – Customer Data Object
import java.io.Serializable;
public class Customer implements Serializable{
private String name;
private int collectedPoints;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setCollectedPoints(int
collectedPoints) {
this.collectedPoints = collectedPoints;
}
public int getCollectedPoints() {
return collectedPoints;
}
}
Danairat T.
Line ID: Danairat
FB: Danairat Thanabodithammachari
+668-1559-1446
Thank you

More Related Content

What's hot

Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
javatwo2011
 
Java rmi example program with code
Java rmi example program with codeJava rmi example program with code
Java rmi example program with code
kamal kotecha
 

What's hot (20)

Database connect
Database connectDatabase connect
Database connect
 
Ejb3 Dan Hinojosa
Ejb3 Dan HinojosaEjb3 Dan Hinojosa
Ejb3 Dan Hinojosa
 
JDBC - JPA - Spring Data
JDBC - JPA - Spring DataJDBC - JPA - Spring Data
JDBC - JPA - Spring Data
 
Jsp/Servlet
Jsp/ServletJsp/Servlet
Jsp/Servlet
 
Java Servlet
Java ServletJava Servlet
Java Servlet
 
JSP- JAVA SERVER PAGES
JSP- JAVA SERVER PAGESJSP- JAVA SERVER PAGES
JSP- JAVA SERVER PAGES
 
Spring 4 final xtr_presentation
Spring 4 final xtr_presentationSpring 4 final xtr_presentation
Spring 4 final xtr_presentation
 
Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望 Java EE 與 雲端運算的展望
Java EE 與 雲端運算的展望
 
Tech talk
Tech talkTech talk
Tech talk
 
Java jdbc
Java jdbcJava jdbc
Java jdbc
 
Java rmi example program with code
Java rmi example program with codeJava rmi example program with code
Java rmi example program with code
 
Chat Room System using Java Swing
Chat Room System using Java SwingChat Room System using Java Swing
Chat Room System using Java Swing
 
ExtJs Basic Part-1
ExtJs Basic Part-1ExtJs Basic Part-1
ExtJs Basic Part-1
 
Creating a Java EE 7 Websocket Chat Application
Creating a Java EE 7 Websocket Chat ApplicationCreating a Java EE 7 Websocket Chat Application
Creating a Java EE 7 Websocket Chat Application
 
Servlet life cycle
Servlet life cycleServlet life cycle
Servlet life cycle
 
Lecture 3: Servlets - Session Management
Lecture 3:  Servlets - Session ManagementLecture 3:  Servlets - Session Management
Lecture 3: Servlets - Session Management
 
java script
java scriptjava script
java script
 
Deployment
DeploymentDeployment
Deployment
 
Simple Jdbc With Spring 2.5
Simple Jdbc With Spring 2.5Simple Jdbc With Spring 2.5
Simple Jdbc With Spring 2.5
 
JavaScript
JavaScriptJavaScript
JavaScript
 

Viewers also liked

Oncotarget Olga´s paper
Oncotarget Olga´s paperOncotarget Olga´s paper
Oncotarget Olga´s paper
Olga Villamizar
 
PREVENTION AND PROTECTION OF A HIP FRACTURES
PREVENTION AND PROTECTION OF A HIP FRACTURESPREVENTION AND PROTECTION OF A HIP FRACTURES
PREVENTION AND PROTECTION OF A HIP FRACTURES
Faruk Hodzic
 
Reserve en línea una empresa para asear su casa u oficina sin preocupaciones
Reserve en línea una empresa para asear su casa u oficina sin preocupacionesReserve en línea una empresa para asear su casa u oficina sin preocupaciones
Reserve en línea una empresa para asear su casa u oficina sin preocupaciones
Corporacion Colombia Digital
 
Antibiotic associated diarrhea
Antibiotic associated diarrheaAntibiotic associated diarrhea
Antibiotic associated diarrhea
Samir Haffar
 
sewing tools and equipments
sewing tools and equipments sewing tools and equipments
sewing tools and equipments
Rona De la Rama
 

Viewers also liked (18)

Manga Kissxsis tomo 10
Manga Kissxsis tomo 10Manga Kissxsis tomo 10
Manga Kissxsis tomo 10
 
HIV diagnoses in children and adolescents: key issues in Europe and different...
HIV diagnoses in children and adolescents: key issues in Europe and different...HIV diagnoses in children and adolescents: key issues in Europe and different...
HIV diagnoses in children and adolescents: key issues in Europe and different...
 
Oncotarget Olga´s paper
Oncotarget Olga´s paperOncotarget Olga´s paper
Oncotarget Olga´s paper
 
Design thinking bbva
Design thinking bbvaDesign thinking bbva
Design thinking bbva
 
G16 osteoporotic fxs
G16 osteoporotic fxsG16 osteoporotic fxs
G16 osteoporotic fxs
 
PREVENTION AND PROTECTION OF A HIP FRACTURES
PREVENTION AND PROTECTION OF A HIP FRACTURESPREVENTION AND PROTECTION OF A HIP FRACTURES
PREVENTION AND PROTECTION OF A HIP FRACTURES
 
Reserve en línea una empresa para asear su casa u oficina sin preocupaciones
Reserve en línea una empresa para asear su casa u oficina sin preocupacionesReserve en línea una empresa para asear su casa u oficina sin preocupaciones
Reserve en línea una empresa para asear su casa u oficina sin preocupaciones
 
¿Cuáles son las estrategias de política pública que impulsan la economía digi...
¿Cuáles son las estrategias de política pública que impulsan la economía digi...¿Cuáles son las estrategias de política pública que impulsan la economía digi...
¿Cuáles son las estrategias de política pública que impulsan la economía digi...
 
Guidance on programmatic management of latent TB infection: applicability for...
Guidance on programmatic management of latent TB infection: applicability for...Guidance on programmatic management of latent TB infection: applicability for...
Guidance on programmatic management of latent TB infection: applicability for...
 
Receta de cocina, tarta de chocolate y galletas
Receta de cocina, tarta de chocolate y galletasReceta de cocina, tarta de chocolate y galletas
Receta de cocina, tarta de chocolate y galletas
 
Digital cash, near feild communication and ultra cash
Digital cash, near feild communication and ultra cashDigital cash, near feild communication and ultra cash
Digital cash, near feild communication and ultra cash
 
Receta de cocina pastel victoria
Receta de cocina pastel victoriaReceta de cocina pastel victoria
Receta de cocina pastel victoria
 
Catalejos.cc
Catalejos.ccCatalejos.cc
Catalejos.cc
 
Antibiotic associated diarrhea
Antibiotic associated diarrheaAntibiotic associated diarrhea
Antibiotic associated diarrhea
 
Role of a Forensic Investigator
Role of a Forensic InvestigatorRole of a Forensic Investigator
Role of a Forensic Investigator
 
Tendencias y oportunidades TIC para las organizaciones en 2016
Tendencias y oportunidades TIC para las organizaciones en 2016Tendencias y oportunidades TIC para las organizaciones en 2016
Tendencias y oportunidades TIC para las organizaciones en 2016
 
foldercv
foldercvfoldercv
foldercv
 
sewing tools and equipments
sewing tools and equipments sewing tools and equipments
sewing tools and equipments
 

Similar to Java Programming - 08 java threading

13multithreaded Programming
13multithreaded Programming13multithreaded Programming
13multithreaded Programming
Adil Jafri
 
Threads in java, Multitasking and Multithreading
Threads in java, Multitasking and MultithreadingThreads in java, Multitasking and Multithreading
Threads in java, Multitasking and Multithreading
ssusere538f7
 
Tornado Web Server Internals
Tornado Web Server InternalsTornado Web Server Internals
Tornado Web Server Internals
Praveen Gollakota
 

Similar to Java Programming - 08 java threading (20)

Java adv
Java advJava adv
Java adv
 
Lecture10
Lecture10Lecture10
Lecture10
 
Java Concurrency
Java ConcurrencyJava Concurrency
Java Concurrency
 
Java Concurrency, Memory Model, and Trends
Java Concurrency, Memory Model, and TrendsJava Concurrency, Memory Model, and Trends
Java Concurrency, Memory Model, and Trends
 
advanced java ppt
advanced java pptadvanced java ppt
advanced java ppt
 
13multithreaded Programming
13multithreaded Programming13multithreaded Programming
13multithreaded Programming
 
Jnp
JnpJnp
Jnp
 
Java Programming - 07 java networking
Java Programming - 07 java networkingJava Programming - 07 java networking
Java Programming - 07 java networking
 
MULTITHREADING CONCEPT
MULTITHREADING CONCEPTMULTITHREADING CONCEPT
MULTITHREADING CONCEPT
 
Core Java Programming Language (JSE) : Chapter XII - Threads
Core Java Programming Language (JSE) : Chapter XII -  ThreadsCore Java Programming Language (JSE) : Chapter XII -  Threads
Core Java Programming Language (JSE) : Chapter XII - Threads
 
Sockets
SocketsSockets
Sockets
 
Threads in java, Multitasking and Multithreading
Threads in java, Multitasking and MultithreadingThreads in java, Multitasking and Multithreading
Threads in java, Multitasking and Multithreading
 
18 concurrency
18   concurrency18   concurrency
18 concurrency
 
9.multi-threading latest(MB).ppt .
9.multi-threading latest(MB).ppt            .9.multi-threading latest(MB).ppt            .
9.multi-threading latest(MB).ppt .
 
Ipc
IpcIpc
Ipc
 
Multithreading
MultithreadingMultithreading
Multithreading
 
Parallel Programming With Dot Net
Parallel Programming With Dot NetParallel Programming With Dot Net
Parallel Programming With Dot Net
 
Threads
ThreadsThreads
Threads
 
MULTI-THREADING in python appalication.pptx
MULTI-THREADING in python appalication.pptxMULTI-THREADING in python appalication.pptx
MULTI-THREADING in python appalication.pptx
 
Tornado Web Server Internals
Tornado Web Server InternalsTornado Web Server Internals
Tornado Web Server Internals
 

More from Danairat Thanabodithammachari

More from Danairat Thanabodithammachari (20)

Thailand State Enterprise - Business Architecture and SE-AM
Thailand State Enterprise - Business Architecture and SE-AMThailand State Enterprise - Business Architecture and SE-AM
Thailand State Enterprise - Business Architecture and SE-AM
 
Agile Management
Agile ManagementAgile Management
Agile Management
 
Agile Organization and Enterprise Architecture v1129 Danairat
Agile Organization and Enterprise Architecture v1129 DanairatAgile Organization and Enterprise Architecture v1129 Danairat
Agile Organization and Enterprise Architecture v1129 Danairat
 
Blockchain for Management
Blockchain for ManagementBlockchain for Management
Blockchain for Management
 
Enterprise Architecture and Agile Organization Management v1076 Danairat
Enterprise Architecture and Agile Organization Management v1076 DanairatEnterprise Architecture and Agile Organization Management v1076 Danairat
Enterprise Architecture and Agile Organization Management v1076 Danairat
 
Agile Enterprise Architecture - Danairat
Agile Enterprise Architecture - DanairatAgile Enterprise Architecture - Danairat
Agile Enterprise Architecture - Danairat
 
Digital Transformation, Enterprise Architecture, Big Data by Danairat
Digital Transformation, Enterprise Architecture, Big Data by DanairatDigital Transformation, Enterprise Architecture, Big Data by Danairat
Digital Transformation, Enterprise Architecture, Big Data by Danairat
 
Big data Hadoop Analytic and Data warehouse comparison guide
Big data Hadoop Analytic and Data warehouse comparison guideBig data Hadoop Analytic and Data warehouse comparison guide
Big data Hadoop Analytic and Data warehouse comparison guide
 
Big data hadooop analytic and data warehouse comparison guide
Big data hadooop analytic and data warehouse comparison guideBig data hadooop analytic and data warehouse comparison guide
Big data hadooop analytic and data warehouse comparison guide
 
Perl for System Automation - 01 Advanced File Processing
Perl for System Automation - 01 Advanced File ProcessingPerl for System Automation - 01 Advanced File Processing
Perl for System Automation - 01 Advanced File Processing
 
Perl Programming - 04 Programming Database
Perl Programming - 04 Programming DatabasePerl Programming - 04 Programming Database
Perl Programming - 04 Programming Database
 
Perl Programming - 03 Programming File
Perl Programming - 03 Programming FilePerl Programming - 03 Programming File
Perl Programming - 03 Programming File
 
Perl Programming - 02 Regular Expression
Perl Programming - 02 Regular ExpressionPerl Programming - 02 Regular Expression
Perl Programming - 02 Regular Expression
 
Perl Programming - 01 Basic Perl
Perl Programming - 01 Basic PerlPerl Programming - 01 Basic Perl
Perl Programming - 01 Basic Perl
 
Setting up Hadoop YARN Clustering
Setting up Hadoop YARN ClusteringSetting up Hadoop YARN Clustering
Setting up Hadoop YARN Clustering
 
JEE Programming - 03 Model View Controller
JEE Programming - 03 Model View ControllerJEE Programming - 03 Model View Controller
JEE Programming - 03 Model View Controller
 
JEE Programming - 05 JSP
JEE Programming - 05 JSPJEE Programming - 05 JSP
JEE Programming - 05 JSP
 
JEE Programming - 04 Java Servlets
JEE Programming - 04 Java ServletsJEE Programming - 04 Java Servlets
JEE Programming - 04 Java Servlets
 
JEE Programming - 08 Enterprise Application Deployment
JEE Programming - 08 Enterprise Application DeploymentJEE Programming - 08 Enterprise Application Deployment
JEE Programming - 08 Enterprise Application Deployment
 
JEE Programming - 07 EJB Programming
JEE Programming - 07 EJB ProgrammingJEE Programming - 07 EJB Programming
JEE Programming - 07 EJB Programming
 

Recently uploaded

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 

Recently uploaded (20)

%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 

Java Programming - 08 java threading

  • 1. Module 08 – Java Threading Danairat T. Line ID: Danairat FB: Danairat Thanabodithammachari +668-1559-1446
  • 2. Fundamental Java Programming The Course Outline Module 01 – Introduction to Java Module 02 – Basic Java Programming Module 03 – Control Flow and Exception Handling Module 04 – Object Oriented in Java Module 05 – Java Package and Access Control Module 06 – Java File IO Module 07 – Java Networking Module 08 – Java Threading
  • 3. Module 08 – Java Threading • Processes • Threads • Java main method as a starting thread • Creating Thread with extending Thread class • Creating Thread with implementing Runnable interface • Java Thread Priority • Network Server Thread Programming
  • 4. Processes A process has a self-contained execution environment. A process generally has a complete, private set of basic run-time resources; in particular, each process has its own memory space. Processes are often seen as synonymous with programs or applications. However, what the user sees as a single application may in fact be a set of cooperating processes. To facilitate communication between processes, most operating systems support Inter Process Communication (IPC) resources, such as pipes and sockets.
  • 5. Threads Multithreaded execution is an essential feature of the Java platform. Every application has at least one thread. From the application programmer's point of view, you start with just one thread, called the main thread. This thread has the ability to create additional threads. Eg. Two Threads are running in a single core processor
  • 6. Java main method as a starting thread class TypicalClass { public void aMethod() { System.out.println(Thread.currentThread()); } public static void main(String[] args) { // main() is run in a single thread System.out.println(Thread.currentThread()); TypicalClass hWorld = new TypicalClass(); hWorld.aMethod(); } } Thread[main,5,main] Thread[main,5,main]
  • 7. Defining and Starting a Thread 1.) Runnable Interface. The Runnable interface defines a single method, run, meant to contain the code executed in the thread. The Runnable object is passed to the Thread constructor, public class HelloRunnable implements Runnable { public void run() { System.out.println(Thread.currentThread()); System.out.println("Hello from a thread!"); } public static void main(String args[]) { System.out.println(Thread.currentThread()); (new Thread(new HelloRunnable())).start(); } } Thread[main,5,main] Thread[Thread-0,5,main] Hello from a thread!
  • 8. Defining and Starting a Thread 2.) Subclass Thread. The Thread class itself implements Runnable, though its run method does nothing. An application can subclass Thread, providing its own implementation of run, public class HelloThread extends Thread { public void run() { System.out.println(Thread.currentThread()); System.out.println("Hello from a thread!"); } public static void main(String args[]) { System.out.println(Thread.currentThread()); (new HelloThread()).start(); } } Thread[main,5,main] Thread[Thread-0,5,main] Hello from a thread!
  • 9. Thread Priority package BasicThread; public class ThreadPriorityDemo extends Thread{ ThreadPriorityDemo(String name) { super(name); } public void run() { for (int i = 0; i<100; i++) System.out.print(getName()); } public static void main(String args[]) { ThreadPriorityDemo t01 = new ThreadPriorityDemo("T01"); ThreadPriorityDemo t02 = new ThreadPriorityDemo("T02"); t01.start(); t02.start(); t02.setPriority(10); // 1 min, 5 default, 10 max } }
  • 10. Network Server Thread Programming import java.io.*; import java.net.*; public class MyServerThread extends Thread { ServerSocket s; public MyServerThread() throws Exception { super(); // Register service on port 1234 s = new ServerSocket(1234); } public void run() { try { while (true) { Socket s1 = s.accept(); // Wait and accept a connection // Read input from client ObjectInputStream objInputStream = new ObjectInputStream(s1.getInputStream()); Customer cust1 = (Customer)objInputStream.readObject(); cust1.setCollectedPoints(3000); // Dummy result // Write result to client OutputStream s1out = s1.getOutputStream(); ObjectOutputStream objOutputStream = new ObjectOutputStream(s1out); objOutputStream.writeObject(cust1); // Close the connection, but not the server socket objOutputStream.close(); s1out.close(); objInputStream.close(); s1.close(); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { MyServerThread myServerThread = new MyServerThread(); myServerThread.start(); } }
  • 11. Client Test import java.net.*; import java.io.*; public class MyClient2 { public static void main(String[] args) throws Exception { // Open your connection to a server, at port 1234 Socket s1 = new Socket("127.0.0.1", 1234); // Write object to the socket server Customer cust1 = new Customer(); cust1.setName("Somchai"); ObjectOutputStream objOutputStream = new ObjectOutputStream(s1.getOutputStream()); objOutputStream.writeObject(cust1); // Get result from server InputStream s1In = s1.getInputStream(); ObjectInputStream objInputStream = new ObjectInputStream(s1In); Customer custResult = (Customer)objInputStream.readObject(); System.out.println(custResult.getName() + " has " + custResult.getCollectedPoints() + " points"); // When done, just close the connection and exit objInputStream.close(); s1In.close(); objOutputStream.close(); s1.close(); } }
  • 12. Supported Class – Customer Data Object import java.io.Serializable; public class Customer implements Serializable{ private String name; private int collectedPoints; public void setName(String name) { this.name = name; } public String getName() { return name; } public void setCollectedPoints(int collectedPoints) { this.collectedPoints = collectedPoints; } public int getCollectedPoints() { return collectedPoints; } }
  • 13. Danairat T. Line ID: Danairat FB: Danairat Thanabodithammachari +668-1559-1446 Thank you