Home Java javaTutorial Analyze the principles of multithreading in Java

Analyze the principles of multithreading in Java

Apr 05, 2017 pm 04:32 PM

Anyone who has studied Java knows that Java is one of the few languages ​​that centrally supports multi-threading. Most languages ​​intelligently run a single program block and cannot run multiple different program blocks at the same time. Java The multi-threading mechanism makes up for this shortcoming. It allows different program blocks to run together, which can make the program run more smoothly and achieve the purpose of multi-tasking:

##1. The concepts of threads and processes

The current operating system is a multi-tasking operating system. Multithreading is a way to achieve multitasking.

A process is a dynamic execution process of a program, which refers to an application running in memory. Each process has its own independent memory space, and multiple threads can be started in one process. For example, in Windows systems, a running exe is a process. A thread refers to an execution flow in a process, and multiple threads can run in a process. For example, many threads can run in the java.exe process. Threads always belong to a process, and multiple threads in a process share the memory of the process. "Simultaneous" execution is human perception, execution is actually rotated between threads.

 

2. Implementation of threads in Java

There are two ways to achieve multi-threading in Java, one is to integrate the Thread class, and the other is to implement Runnable interface. Let’s look at the creation principle of threads inherited from the Thread class:

First define a thread class. This class must inherit from the Thread class, and the run() method must be explicitly overridden.

For example:

class MyThread extends Thread{

  public void run(){ //覆写Thread类中的run方法此方法是线程中

  线程主体; 的主体

  }
Copy after login

Then define a main class, instantiate the object of the thread class, and initiate the command to start the thread

Such as:

public class ThreadText{

  public stataic void main(String args[]){

  MyThread m1=new MyThread();//实例化对象

  m1.start();//启动多线程

  }

  };
Copy after login

Implement the Runnable interface:

First define A thread class inherits from the Runnable interface

For example:

class MyThread implements Runnable{

  public void run(){ //覆写Runnable接口中的run方法

  线程主体;

  }
Copy after login

Then define a main class, instantiate the object of the thread class, and initiate the command to start the thread

For example :

public class ThreadText{

  public stataic void main(String args[]){

  MyThread m1=new MyThread();//实例化Runnable子类对象

  Thread t1=new Thread(m1);//实例化Thread类对象

  t1.start();//启动多线程

  }

  };
Copy after login

 
3. Several states of threads

In Java, threads usually have five states, creation, ready, running, blocking and die.

The first is to create a state. When the thread object is generated, the start method of the object is not called, which means the thread is in the creation state.

The second is the ready state. When the start method of the thread object is called, the thread enters the ready state, but at this time the thread scheduler has not set the thread as the current thread, and it is in the ready state at this time. After the thread runs, it will also be in the ready state after returning from waiting or sleeping.

The third is the running status. The thread scheduler sets the thread in the ready state as the current thread. At this time, the thread enters the running state and starts running the code in the run function.

The fourth is the blocking state. When a thread is running, it is suspended, usually to wait for a certain time to occur (for example, a certain resource is ready) before continuing to run. Sleep, suspend, wait and other methods can cause thread blocking.

The fifth is the state of death. If the run method of a thread ends or the stop method is called, the thread will die. For a thread that has died, the start method can no longer be used to make it ready.

The above is the detailed content of Analyze the principles of multithreading in Java. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Perfect Number in Java Perfect Number in Java Aug 30, 2024 pm 04:28 PM

Guide to Perfect Number in Java. Here we discuss the Definition, How to check Perfect number in Java?, examples with code implementation.

Weka in Java Weka in Java Aug 30, 2024 pm 04:28 PM

Guide to Weka in Java. Here we discuss the Introduction, how to use weka java, the type of platform, and advantages with examples.

Smith Number in Java Smith Number in Java Aug 30, 2024 pm 04:28 PM

Guide to Smith Number in Java. Here we discuss the Definition, How to check smith number in Java? example with code implementation.

Java Spring Interview Questions Java Spring Interview Questions Aug 30, 2024 pm 04:29 PM

In this article, we have kept the most asked Java Spring Interview Questions with their detailed answers. So that you can crack the interview.

Break or return from Java 8 stream forEach? Break or return from Java 8 stream forEach? Feb 07, 2025 pm 12:09 PM

Java 8 introduces the Stream API, providing a powerful and expressive way to process data collections. However, a common question when using Stream is: How to break or return from a forEach operation? Traditional loops allow for early interruption or return, but Stream's forEach method does not directly support this method. This article will explain the reasons and explore alternative methods for implementing premature termination in Stream processing systems. Further reading: Java Stream API improvements Understand Stream forEach The forEach method is a terminal operation that performs one operation on each element in the Stream. Its design intention is

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Guide to TimeStamp to Date in Java. Here we also discuss the introduction and how to convert timestamp to date in java along with examples.

Java Program to Find the Volume of Capsule Java Program to Find the Volume of Capsule Feb 07, 2025 am 11:37 AM

Capsules are three-dimensional geometric figures, composed of a cylinder and a hemisphere at both ends. The volume of the capsule can be calculated by adding the volume of the cylinder and the volume of the hemisphere at both ends. This tutorial will discuss how to calculate the volume of a given capsule in Java using different methods. Capsule volume formula The formula for capsule volume is as follows: Capsule volume = Cylindrical volume Volume Two hemisphere volume in, r: The radius of the hemisphere. h: The height of the cylinder (excluding the hemisphere). Example 1 enter Radius = 5 units Height = 10 units Output Volume = 1570.8 cubic units explain Calculate volume using formula: Volume = π × r2 × h (4

Create the Future: Java Programming for Absolute Beginners Create the Future: Java Programming for Absolute Beginners Oct 13, 2024 pm 01:32 PM

Java is a popular programming language that can be learned by both beginners and experienced developers. This tutorial starts with basic concepts and progresses through advanced topics. After installing the Java Development Kit, you can practice programming by creating a simple "Hello, World!" program. After you understand the code, use the command prompt to compile and run the program, and "Hello, World!" will be output on the console. Learning Java starts your programming journey, and as your mastery deepens, you can create more complex applications.

See all articles