Java多线程(多线程基本操作,多线程安全问题等)

本文详细介绍了Java多线程的创建方式,包括继承Thread、实现Runnable、匿名内部类和使用lambda表达式。接着,讨论了Thread类的构造方法和常见属性。重点讲解了线程的启动、中断、等待和休眠,以及线程状态。特别是线程安全问题,分析了线程不安全的原因,并提出了解决方案如synchronized和volatile关键字。最后,通过一个示例展示了多线程修改同一变量导致的线程安全问题。
摘要由CSDN通过智能技术生成
  • 3)匿名内部类

  • 4)使用lambda表达式来创建

  • 二、了解Thread 类

    • 2.1Thread的常见的构造方法
  • 2.2Thread的几个常见的属性

  • 三、启动一个线程

  • 四、中断一个线程

    • 4.1 让线程的入口方法执行完毕
  • 4.2 使用Thread类提供的interrupt方法

  • 五、等待线程

  • 六、线程休眠

  • 七、线程的状态

  • 八、线程安全(重要)!!!

    • 8.1导致线程不安全的原因:
  • 8.2解决线程安全问题方法

    • synchronized
  • volatile

  • 九、对象等待集


一、创建线程四种方式

=============================================================================

1)继承Thread


利用多态机制,继承于Thread机制

**1)创建一个子类,继承于Thread

2)重写run 方法

3)创建子类实例

4)调用start 方法**

public class Demo {

//创建多线程

public static void main(String[] args) {

MyThread2 myThread2=new MyThread2();

myThread2.start();

}

}

class MyThread2 extends Thread{

@Override

public void run() {

//这里写线程要执行的代码

}

}

2)调用Runnable


通过实现Runnable 接口,把Runnable 接口的实例赋值给Thread

**1)定义Runnable接口的实现类

2)创建Runnable实现类的实例,并用这个实例作为Thread的target来创建Thread对象,这个Thread对象才是真正的线程对象

3)调用start () 方法**

public class Demo {

//创建多线程

public static void main(String[] args) {

//通过Runnable 接口来创建

Runnable myTask=new MyTask();

Thread t=new Thread();

t.start();

}

}

class MyTask implements Runnable{

@Override

public void run() {

//重写run()方法

}

}

Runnable 本质上还是要搭配Thread来使用,只不过和直接继承Thread相比,换了一种指定任务的方式而已

这两种方式中Runnable 方式更好一点,能够让线程本身,和线程要执行的任务,更加“解耦合”

3)匿名内部类


通过匿名内部类相当于继承了Thread,作为子类重写run()实现

public class Demo {

//创建多线程

public static void main(String[] args) {

//通过匿名内部类来实现

Thread t=new Thread(){

@Override

public void run() {

//重写run方法

}

};

t.start();

}

}

通过Runnable 匿名内部类来实现

public class Demo {

//创建多线程

public static void main(String[] args) {

//通过匿名内部类来实现

Thread t=new Thread(new Runnable() {

@Override

public void run() {

//重写run方法

}

});

t.start();

}

}

4)使用lambda表达式来创建


public c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值