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等。
(后续有遇到问题再添加)
声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。