- 多线程是编程过程里必不可少的内容,学习多线程,就先要了解进程和线程的概念。
- 进程:是指当前正在运行的程序,是一个程序在内存里的执行区域;
- 线程:是在进程里的一个执行控制单元,执行路径;
实现多线程的方式有两种,一种是继承Thread类,一种是实现runnable接口。
1.继承Thread类
a) 根据API中的描述:创建新执行线程,继承Thread类方法是将类声明为 Thread
的子类。该子类应重写 Thread
类的 run
方法。
如下所示:
public class ThreadDemo extends Thread { @Override public void run() { for (int i=0;i<100;i++){ System.out.println(getName()+":"+i); } } }
getName()
方法用于 返回该线程的名称
b) 接下来可以分配并启动该子类的实例
如下所示:
public static void main(String[] args) { ThreadDemo xc = new ThreadDemo(); xc.setName("thread1"); xc.start(); ThreadDemo xc2= new ThreadDemo(); xc2.setName("thread2"); xc2.start(); }
2.实现runnable接口
a) API中的描述是:创建线程的另一种方法是声明实现 Runnable
接口的类。该类然后实现 run
方法。然后可以分配该类的实例,在创建 Thread
时作为一个参数来传递并启动
如下所示:
public class RunableDemo implements Runnable { public void run() { for (int i = 0; i < 100; i++) { System.out.println(Thread.currentThread().getName()+":"+i); } } }
currentThread()
我们实现了Runnable接口,接口里是没有getName方法的,所以如果我们想要获得到当前线程的基本信息,就需要用到Thread类的这个方法。API中描述:返回对当前正在执行的线程对象的引用,这个对象中是有getName()方法的。
b) 调用线程时,是使用Thread类,继承的对象作为一个参数传入
如下所示:
public static void main(String[] args) { RunableDemo xc = new RunableDemo(); Thread thread = new Thread(xc); thread.setName("thread1"); thread.start(); Thread thread2 = new Thread(xc); thread2.setName("thread2"); thread2.start(); }
-
RunableDemo 实现了Runnable接口,这个对象作为runnable类型的对象传入Thread类中
- 最后通过start()方法进行启动,运行线程中的run()方法
原文地址:https://www.cnblogs.com/wlym/p/9684088.html
时间: 2024-10-24 23:13:38