线程

本文详细介绍了线程的概念,包括线程的定义和在进程中的地位。接着阐述了创建线程的三种方式:继承Thread类、实现Runnable接口和实现Callable接口,并比较了它们之间的区别。此外,还讲解了Thread类中的关键API,如设置线程名称、休眠和优先级。最后,讨论了线程安全问题及其解决方案,如加锁机制。
摘要由CSDN通过智能技术生成

1.什么是线程?

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

2.创建线程的方式

2.1继承Thread类的方式

JDk给我们的Thread类表示的就是线程,JVM允许我们在一个进程中开启多个线程,然后每一个线程去执行指定的任务
实现步骤
1.继承Thread类
2.重写run方法(run方法封装的就是要被线程执行的代码)
3.启动线程

public class MyThread extends Thread{
   
@Override
    public void run() {
   
        //代码就是线程在开启之后执行的代码
        for (int i = 0; i < 100; i++) {
   
            System.out.println("线程开启了" + i);
        }
    }
}
public class Demo {
   
    
    public static void main(String[] args) {
   
        //创建一个线程对象
        MyThread t1 = new MyThread();
        //创建一个线程对象
        MyThread t2 = new MyThread();
        //开启一条线程
        t1.start();
        //开启第二条线程
        t2.start();

结论:
多线程的执行具有随机性

2.2实现Runnable接口

涉及到的Thread类中的方法

方法名 说明
Thread(Runnable target) 分配一个新的Thread对象
Thread(Runnable target, String name) 分配一个新的Thread对象,可以设置线程名称

实现步骤
1.定义一个类MyRunnable实现Runnable接口
2.在MyRunnable类中重写run()方法
3.创建MyRunnable类的对象
4.创建Thread类的对象,把MyRunnable对象作为构造方法的参数
5.启动线程

public MyRunnable imlements Runnable{
   
@Override
    public void run() {
   
        //线程启动后执行的代码
        for (int i = 0; i < 100; i++) {
   
            System.out.println(Thread.
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值