多线程详解(暂时完结)

本文详述了Java多线程的创建方法,包括继承Thread类和实现Runnable接口,并探讨了线程状态的管理,如线程休眠、停止与礼让。还介绍了线程同步的原理和锁机制,包括synchronized和Lock,并提到了线程协作与线程池的应用,总结了Java多线程的重要知识点。
摘要由CSDN通过智能技术生成

本文为狂神说Java多线程课程的笔记
【狂神说Java】多线程详解


1、线程创建

1.1 Thread class 继承Thread类(重点)
  1. 将类声明为Thread的子类
  2. 重写Thread类的run方法,编写线程执行体
  3. 创建线程对象,调用start()方法启动线程
//声明Thread的子类
class PrimeThread extends Thread {
         long minPrime;
         PrimeThread(long minPrime) {
             this.minPrime = minPrime;
         }
 
         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }

//创建线程对象,调用Start()方法启动线程
 PrimeThread p = new PrimeThread(143);
     p.start();

注意:线程开启不一定立即执行,由CPU调度执行。

1.2 Runnable接口 实现接口(重点)
  1. 定义MyRunnable类实现Runnable接口
  2. 实现run()方法,编写线程执行体
  3. 创建Runnable对象丢到Thread对象构造器中,调用start()方法启动线程
//定义类实现接口
class PrimeRun implements Runnable {
         long minPrime;
         PrimeRun(long minPrime) {
             this.minPrime = minPrime;
         }
 
         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }

//!!!创建的Runnable对象
PrimeRun p = new PrimeRun(143);
//!!!丢到Thread构造器中调用执行
     new Thread(p).start();

推荐使用runnable接口而不是Thread继承,因为Java只能单继承但是可以实现多个接口,灵活方便。方便同一个对象被多个线程使用。

1.3 Callable接口 实现接口(了解)
  1. 实现Callable接口,需要返回值类型。
  2. 重写call方法,需要抛出异常。
  3. 创建目标对象。
  4. 创建执行服务:ExecuteService ser = Executors.newFixedThreadPool(1);
  5. 提交执行:Future<Boolean> result1 = ser.submit(t1);
  6. 获取结果:boolean r1 = result1.get()
  7. 关闭服务ser.shutdownNow();

Callable的好处

  1. 可以定义返回值。
  2. 可以抛出异常。
扩展:代理模式
  1. 真实对象和代理对
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值