Home Java javaTutorial What are the states of java threads

What are the states of java threads

Dec 27, 2019 pm 02:53 PM
java state thread

What are the states of java threads

Java threads can be created and destroyed, so threads have a life cycle, and the life cycle of a thread can be described by the six states of the thread.

It can be seen from the source code of the Thread class that there are 6 states of threads:

What are the states of java threads

These six states They are:

1. New: Initial state, the thread is created and start() is not called.

2. Runnable: Running state. Java threads call the two states of ready and running in the operating system "running".

3. Blocked: Blocked, the thread enters the waiting state, and the thread gives up the right to use the CPU for some reason.

Several situations of blocking:

A. Waiting for blocking: The running thread executes wait(), and the JVM will put the current thread into the waiting queue.

B. Synchronous blocking: When the running thread acquires the synchronization lock of the object, if the synchronization lock is occupied by other threads, the JVM will put the current thread into the lock pool.

C. Other blocking: When the running thread executes sleep(), join() or issues an IO request, the JVM will set the current thread to the blocking state. When sleep() is completed, the join() thread terminates , the thread resumes again after IO processing is completed.

4. Waiting: Waiting state.

5. timed_waiting: timeout waiting state, automatically returning after timeout.

6. terminated: Termination status, the current thread has completed execution.

Conversion between the six states of a thread:

When a thread is instantiated, it first enters the initial state, that is, the New state. At this time, the thread starts It does not run immediately, but waits until the operating system schedules it before running, and then calls start() to enter the running state, that is, runnable. The running state includes two states: running and ready. The two states can be converted to each other under the scheduling of the operating system. If the time slice of the running thread is preempted by the CPU, it will become the ready state; the running thread enters the blocked state by calling the synchronized method or synchronized block, that is, blocked. When the thread After acquiring the lock, it enters the running state; if the thread calls sleep(), wait().join(), Locksupported.parkUtil() and other methods during execution, it will enter the waiting state (waiting) or timeout waiting state, that is, timed_waiting, when calling notify(), notifyAll(), Locksupported.unpark() and other methods again, it will re-enter the runtime state. When the thread execution is completed, it will enter the termination state, that is, the terminated state.

Note: Locksupported is a tool class provided by JDK 1.6. In the java.util.concurrent package, the park and unpark methods it provides are more flexible than the wait and notify methods.

View thread status through the command line

First introduce two commands:

1. Jps:JDK 1.5 provides the display of all current Java The process pid command can be used to obtain the corresponding process pid.

2. Jstack: It is a stack tracing tool that comes with the Java virtual machine. It can print out the given process pid information and the Java stack information of the remote debugging service.

Specific steps:

Open the terminal or command line tool, enter the jps command to get the pid;

Enter jstack pid to view the current process information.

What are the states of java threads

PHP Chinese website has a large number of free JAVA introductory tutorials, everyone is welcome to learn!

The above is the detailed content of What are the states of java threads. 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