search
HomeJavaJavagetting StartedHow to implement multi-threading in java

How to implement multi-threading in java

Sep 30, 2020 pm 03:56 PM
javaMultithreading

How to implement multi-threading in java

Requirements: We want to implement a multi-threaded program

(Recommended tutorial: java course)

How Implementation:

Since threads depend on processes, we should create a process first

And the process is created by the system, so we should call the system function to create a process

However, Java cannot directly call system functions, so we have no way to directly implement multi-threaded programs

However, Java can directly call programs written in C/C to implement multi-threaded programs. Thread program

Because C/C calls system functions to create processes, and then Java calls things like this

and then provides some classes for us to use. We can implement multi-threading

So what are the classes provided by Java?

Thread

By looking at the API, we know that there are two ways to implement multi-threading

Method 1: Inherit the Thread class

Steps:

A: The custom class MyThread inherits the Thread class

B: Override run() in the MyThread class;

Why is the run() method?

Not all codes of a class need to be executed by threads

At this time, in order to distinguish those codes that can be executed by multiple threads, Java provides the run() method in the Thread class

Used to include the code executed by the thread

C: Create object

D: Start thread

Example:

package cn.itcast_01;
public class 如何实现多线程及其多线程方式1的思路 {
public static void main(String[] args) {
// 创建线程对象
MyThread my = new MyThread();
//启动线程
my.run();
my.run();
//调用run();方法为什么是单线程呢?
//因为run();方法的直接调用其实就相当于普通方法调用,所有你看到的是单线程的效果
//想要看到多线程的效果,就必须说另一个方法:start()
//面试题run()和start()的区别
//run():仅仅是封装被线程执行的代码,直接调用依旧是普通方法
//start():首先启动了线程,然后再由JVM去调用该线程的run()方法
MyThread my = new MyThread();
my.start();
my.start();//IllegalThreadStateException:非法的线程状态异常
//为什么呢?
//因为这是相当于my线程别调用了两次。而不是两个线程的启动
//创建两个线程
MyThread my1 = new MyThread();
MyThread my2 = new MyThread();
my1.start();
my2.start();
}
}

Related recommendations :Getting started with java

The above is the detailed content of How to implement multi-threading in java. For more information, please follow other related articles on the PHP Chinese website!

Statement
This article is reproduced at:csdn. If there is any infringement, please contact admin@php.cn delete

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

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software