线程 --- Thread 类的基本用法 old

简介: 线程 --- Thread 类的基本用法 old

线程创建

1. 继承Thread,重写 run 方法

//1.继承Thread来创建一个线程类
class MyThread extends Thread{
    @Override
    public void run(){
        System.out.println("线程");
    }
}
//2.创建 MyThread 的实例
MyThread myThread = new MyThread();
//3.调用 start 方法启动线程
myThread.start();

2. 实现Runnable,重写 run 方法

//1.实现 Runnable 接口
class MyRunnable implements Runnable{
    @Override
    public void run() {
        System.out.println("线程");
    }
}
//2.创建 Thread 类实例,调用 Thread 的构造方法, 将Runnable 对象作为 target 参数
Thread t = new Thread (new MyRunnable() );
//3.调用 start 方法
t.start();

3. 继承Thread,使用匿名内部类

//1.使用匿名内部类创建
Thread thread = new Thread(){
    @Override
    public void run() {
        System.out.println("线程");
    }
};
//2.调用 start 方法
thread.start();

4. 实现Runnable,使用匿名内部类

//1.使用匿名内部类 Runnable接口  创建
Thread t = new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("线程");
    }
});
//2.start
t.start();


5. 使用 lambda 表达式(最常用 最方便)

//1.lambda表达式
Thread thread = new Thread(()->{
    System.out.println("线程");
});
//2.调用start方法
thread.start();

线程等待 -- join

1. 概念

t . join ( ) ;

在main程序中,出现这个语句会让main线程阻塞等待,

等待t执行完之后 main 才会继续执行。

主要用来控制线程之间的结束顺序。


2. join 的三种方法


public void jion () 等待线程结束
public void jion (long millis) 等待线程结束,最多等待millis毫秒

public void jion (long millis , int nanos)

同理,但可以更高精度


线程休眠

1. 休眠的两种方法

有一点我们要知道,线程的调度是不可控的,所以实际休眠时间是大于参数设置的休眠时间的


image.png

获取线程实例

public class Demo {
    public static void main(String[] args) throws InterruptedException {
        Thread thread1 = new Thread(()->{
            System.out.println(1);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        Thread thread2 = new Thread(()->{
            System.out.println(2);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });
        thread1.start();
        thread2.start();
        thread1.join();
        thread2.join();
        System.out.println("OK");
    }
}


相关文章
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
115 1
|
1月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
128 1
|
6月前
|
Arthas 监控 Java
Arthas thread(查看当前JVM的线程堆栈信息)
Arthas thread(查看当前JVM的线程堆栈信息)
1053 10
|
11月前
|
Java
【JavaEE】——多线程常用类
Callable的call方法,FutureTask类,ReentrantLock可重入锁和对比,Semaphore信号量(PV操作)CountDownLatch锁存器,
|
11月前
|
Java 程序员 调度
【JavaEE】线程创建和终止,Thread类方法,变量捕获(7000字长文)
创建线程的五种方式,Thread常见方法(守护进程.setDaemon() ,isAlive),start和run方法的区别,如何提前终止一个线程,标志位,isinterrupted,变量捕获
|
11月前
|
安全 Java API
【JavaEE】多线程编程引入——认识Thread类
Thread类,Thread中的run方法,在编程中怎么调度多线程
|
1月前
|
Java
如何在Java中进行多线程编程
Java多线程编程常用方式包括:继承Thread类、实现Runnable接口、Callable接口(可返回结果)及使用线程池。推荐线程池以提升性能,避免频繁创建线程。结合同步与通信机制,可有效管理并发任务。
128 6
|
4月前
|
Java API 微服务
为什么虚拟线程将改变Java并发编程?
为什么虚拟线程将改变Java并发编程?
292 83
|
22天前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
182 0
|
2月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
192 16

热门文章

最新文章