Home >Java >Javagetting Started >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!