自学笔记:Java并发编程基础

it2026-01-07  7

Java并发编程基础知识

一、多线程是什么?二、多线程的创建1.实现Runnable接口2.继承Thread类3.两种线程创建方式的联系与区别。


一、多线程是什么?

多线程就是指一个进程内有多个线程。进程是只一个运行中的程序,线程则是只进程中一个独立的执行单位。进程至少有一个线程。 例如:一台电脑同时运行了多个软件,这是多个进程。以电脑管家为例,它可以在查杀病毒的同时清理垃圾,这就是一个进程内有多个线程。

二、多线程的创建

多线程的创建有两种方式。一种是实现Runnable接口,另一种是继承Thread类。

1.实现Runnable接口

步骤:

创建一个线程类实现Runnable接口,并实现run()方法。run()方法就是该线程的任务。通过Thread对象,调用start对象,开启线程。

代码如下:

public class MyThread implements Runnable{ String threadName; public MyThread(String threadName){ this.threadName=threadName; } @Overrride public void run(){ for(int i=1;i<=5;i++){ System.out.println(threadName+"第"+i+"次执行。") } } } public class ThreadDemo{ public static void main(String[] args){ Mythread myThread01=new MyThread("线程1"); Mythread myThread02=new Mythread("线程2"); Thread thread01=new Thread(myThread01); Thread thread02=new Thread(myThread02); thread01.start(); thread02.start(); } }

执行结果:

***注意:***线程需要通过start方法开启,如果直接调用run()方法,实际上就只是在main方法中调用run方法罢了,并没有开启多线程。 例如:我将start方法改为执行run方法。

public class ThreadDemo{ public static void main(String[] args){ //实现Runnable接口 MyThread myThread01=new MyThread("线程1"); MyThread myThread02=new MyThread("线程2"); Thread thread01=new Thread(myThread01); Thread thread02=new Thread(myThread02); thread01.run(); //不执行start() thread02.run(); } }

结果如下:

2.继承Thread类

步骤:

创建一个线程类继承Runnable接口,并重写run()方法。创建线程对象,并调用start()开启线程。

代码如下:

public class MyThread01 extends Thread{ String threadName; public MyThread(String threadName){ this.threadName=threadName; } @Override public void run(){ for(int i=1;i<=5;i++){ System.out.println(threadName+"第"+i+"次执行。")} } } public Class ThreadDemo{ public static void main(String[] args){ MyThread01 thread01=new MyThread01("线程1 "); MyThread01 thread02=new MyThread01("线程2 "); thread01.start(); thread02.start(); } }

结果如下:

3.两种线程创建方式的联系与区别。

联系: 首先打开Thread类,会发现Thread类也实现T了Runnable接口。 用户不论如何都要重写run()方法。

区别: 继承Runnable接口更常用,可以避免单继承的限制,也更适合资源共享。

最新回复(0)