Main skills and concepts
• Understand the fundamentals of creating multiple threads
• Know the Thread class and the Runnable
interface
• Create a thread
• Create multiple threads
• Determine when a thread ends
• Use thread priorities
• Understand thread synchronization
• Use synchronized methods
• Use synchronized blocks
• Promote communication between threads
• Suspend, resume and stop threads
Threads: These are independent paths of execution within a program.
Multitasking: It can be based on processes (several programs) or threads (several tasks in the same program).
Advantages:
Greater efficiency when using idle time.
Better use of multicore/multiprocessor systems.
Thread Creation and Management
Classes and Interfaces:
Thread: Class that encapsulates threads.
Runnable: Interface used to define custom threads.
Common Thread Class Methods:
Creating Threads:
class MyThread implements Runnable { String threadName; MyThread(String name) { threadName = name; } public void run() { System.out.println(threadName + " starting."); try { for (int i = 0; i < 10; i++) { Thread.sleep(400); System.out.println("In " + threadName + ", count is " + i); } } catch (InterruptedException e) { System.out.println(threadName + " interrupted."); } System.out.println(threadName + " terminating."); } } public class UseThreads { public static void main(String[] args) { System.out.println("Main thread starting."); MyThread myThread = new MyThread("Child #1"); Thread thread = new Thread(myThread); thread.start(); for (int i = 0; i < 50; i++) { System.out.print("."); try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Main thread interrupted."); } } System.out.println("Main thread ending."); } }
Expected output:
Main thread starting. . Child #1 starting. .. In Child #1, count is 0 ... In Child #1, count is 1 ... Main thread ending.
Thread Class Extension:
class MyThread extends Thread { MyThread(String name) { super(name); } public void run() { System.out.println(getName() + " starting."); try { for (int i = 0; i < 10; i++) { Thread.sleep(400); System.out.println("In " + getName() + ", count is " + i); } } catch (InterruptedException e) { System.out.println(getName() + " interrupted."); } System.out.println(getName() + " terminating."); } } public class UseThreads { public static void main(String[] args) { System.out.println("Main thread starting."); MyThread thread = new MyThread("Child #1"); thread.start(); for (int i = 0; i < 50; i++) { System.out.print("."); try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Main thread interrupted."); } } System.out.println("Main thread ending."); } }
note: The sleep() method makes the thread in which it is called suspend execution
for the specified period of milliseconds.
book table
The above is the detailed content of Cap Programming with multiple threads. For more information, please follow other related articles on the PHP Chinese website!