系列文章目录
一、多线程基本概念
文章目录
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、多线程的实现方式
1.类方法重写
2.接口实现
二、代码实习
1.java.lang.Thread类的继承与run方法重新
代码如下(示例):
class thread1 extends Thread {
//Ctrl+O
@Override
public void run() {
//线程中需执行的任务
}
}
main方法中:
thread1 t = new thread1 (); // 新建一个分支线程对象
t.start();//启动分支线程,每个分支线程对象只能start一次,不可重复启动。
2.javalangRunnable接口的实现
代码如下(示例):
法一:
class Runnable1 implements Runnable{
@Override
public void run() {
线程中需执行的任务
}
main方法中:
Runnable1 runnable = new Runnable1();
Thread t = new Thread(runnable);
t.start();
法二:
//采用匿名内部类方式,直接在main中
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
//线程中需执行的任务
}
});
t1.start();
3.Callable接口的实现
代码如下(示例):
FutureTask task = new FutureTask(new Callable() {
@Override
public Object call() throws Exception {
//线程中需执行的任务
return //返回的值
}
});
Thread t = new Thread(task);
t.start();
代码的功能
run()方法
不会启动线程,不会分配新的分支栈(只调用run()不调用start()还是单线程),会先执行 t 线程的任务,再执行主线程main中的任务
start()方法
方法的作用:启动一个分支线程,在JVM中开辟一个新的栈空间。
启动成功的线程会自动调用run方法。
三、线程常用方法
1、获取当前线程对象 Thread t = Thread.currentThread();
2、获取线程对象名 String name = 线程对象.getName();
3、设置线程对象名 线程对象.setName(“”);
四、线程优先级
1、获取当前线程对象优先级 Thread.currentThread().getPriority()
2、设置当前线程对象优先级Thread.currentThread().setPriority(1)//范围1~10,默认为5