【Java】多线程创建与管理 (实操图解)

Java系列文章目录

补充内容 Windows通过SSH连接Linux
第一章 Linux基本命令的学习与Linux历史


一、前言

  • 多线程入门

二、学习内容:

  • 实现多线程效果

三、问题描述

  • 入门观察效果

四、解决方案:

4.1 Thread

🌟 myThing.start()是并行,三个线程同时执行

在这里插入图片描述

🌟 myThing.run()是并行,按顺序执行

在这里插入图片描述

4.2 Runnable

实现效果一样但是使用方法不同具体看红框

在这里插入图片描述


五、总结:

线程概念:

  • 线程是操作系统调度的最小单位,是进程中的一个执行流。
  • 一个进程可以包含多个线程,这些线程共享进程的资源。

多线程的优点:

  • 提高CPU利用率:多个线程可以并发执行,充分利用CPU资源。
  • 改善程序响应时间:当某个线程阻塞时,其他线程可以继续执行。
  • 方便分配任务:将不同的任务分配给不同的线程执行。

多线程的缺点:

  • 线程同步问题:多线程共享资源时可能会出现竞争条件,需要进行同步。
  • 死锁问题:多个线程互相等待资源而陷入死锁。
  • 线程安全问题:多线程操作共享资源可能会产生不可预期的结果。

线程的创建与管理:
本次仅学这个入门

  • 通过Thread类或Runnable接口创建线程。
  • 使用start()方法启动线程,run()方法定义线程的执行逻辑。
  • 通过join()方法等待线程结束,sleep()方法暂停线程执行。
  • 使用线程池管理线程,提高资源利用率和响应速度。

线程同步:

  • 使用synchronized关键字、Lock接口等实现临界区和互斥锁。
  • 使用wait()、notify()和notifyAll()方法实现线程间通信。
  • 使用Semaphore、CountDownLatch等并发工具类协调线程。

线程安全:

  • 无状态类天生线程安全,有状态类需要进行额外的同步处理。
  • 使用volatile关键字保证变量的可见性。
  • 使用ThreadLocal存储线程私有数据,避免线程安全问题。

线程池:

  • 线程池可以重复利用已创建的线程,提高性能和资源利用率。
  • 常用的线程池实现有FixedThreadPool、CachedThreadPool等。
  • 使用Executor框架管理线程池,简化线程的创建和销毁。

JUC包:

  • java.util.concurrent(JUC)包提供了多线程编程的高级抽象。
  • 包含各种并发工具类,如CountDownLatch、Semaphore、CyclicBarrier等。
  • 提供了Lock接口及其实现类,如ReentrantLock等。

(后续有遇到问题再添加)


声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。

在这里插入图片描述

  • 16
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值