Java笔记之线程

简介: 缓冲流 集合 类和类的关系。。。 MVC分层架构设计思想线程 String家族 StringBuilder StringBuffer 集合家族 ArrayList Vector HashMap HashTable 程序 可以理解为是一组静态的代码 进程 正在进行的程序 静态的代码 运行起来 线程 正在执行程序中的小单元 聚餐 聚餐之前 班级大扫除 扫除需要分配任务 任务写在纸上 列一个清单 一声令下 开始扫除 进程 每一个同学都做自己的事情 并发执行 互相不影响

缓冲流  集合  类和类的关系。。。

   MVC分层架构设计思想

线程

   String家族

StringBuilder    StringBuffer

   集合家族

ArrayList          Vector

HashMap          HashTable

程序

 可以理解为是一组静态的代码

进程

 正在进行的程序 静态的代码  运行起来

线程

 正在执行程序中的小单元

聚餐

聚餐之前   班级大扫除

扫除需要分配任务 任务写在纸上  列一个清单

一声令下   开始扫除    进程

每一个同学都做自己的事情   并发执行   互相不影响

1.主线程   系统线程

2.用户线程   main

3.守护线程(精灵) GC

线程------操作系统级别  CPU

如何在Java中创建线程  让线程执行  多线程

掌握每一个线程的几种不同状态   及状态之间如何切换

 

new         start()       CPU分配run()       wait()    exception  over

创建线程------就绪状态------执行状态------等待/挂起------异常/消亡

            |                                          |

            |______________________________|

      notify/notifyAll

实现线程的过程

1.自己描述一个类

2.继承父类Thread

3.重写run方法

4.new一个线程对象  调用start()方法 让线程进入就绪状态

实现线程的过程

1.自己描述一个类

2.实现一个父接口Runnable

3.重写run方法

4.new一个线程对象  需要创建Thread将自己的对象包起来 然后调用start()

实现一个跑步的小例子

 多个人同时跑步

 苏炳添   博尔特   加特林

思考题--->扩展

字节型文件输入流

FileInputStream

read()   read(byte[])   close()   avaialbe()

skip(long count)

文件 100字节   5个线程对象 同时读

1从头--20    2跳过20读--40    3跳过40--60

微信抢红包例子

发送红包   5块钱  10个红包  随机(保证10个人都有 至少0.01)  集合里

多个线程 抢红包

Java中 继承  单继承

extends

Person extends Animal

模拟一个火车站售票小例子

1.车票   2.系统12306   3.窗口window 多线程

车票

   属性

 起始站

 终点站

 票价

系统

   属性

 集合

   方法

窗口

 是一个线程

 

利用Vector集合   集合本身就是线程安全

1.如何切换线程的不同状态

2.如果在设计中没有集合  我们自己想要控制线程安全

目录
相关文章
|
4天前
|
Java 程序员 开发者
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
45 14
|
7天前
|
安全 Java 程序员
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
37 13
|
8天前
|
安全 Java 开发者
【JAVA】封装多线程原理
Java 中的多线程封装旨在简化使用、提高安全性和增强可维护性。通过抽象和隐藏底层细节,提供简洁接口。常见封装方式包括基于 Runnable 和 Callable 接口的任务封装,以及线程池的封装。Runnable 适用于无返回值任务,Callable 支持有返回值任务。线程池(如 ExecutorService)则用于管理和复用线程,减少性能开销。示例代码展示了如何实现这些封装,使多线程编程更加高效和安全。
|
30天前
|
存储 Java 开发者
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
本文详细介绍了 Java 中 `toString()` 方法的重写技巧及其重要
50 10
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
|
30天前
|
前端开发 JavaScript Java
Java构建工具-maven的复习笔记【适用于复习】
这篇文档由「潜意识Java」创作,主要介绍Maven的相关知识。内容涵盖Maven的基本概念、作用、项目导入步骤、依赖管理(包括依赖配置、代码示例、总结)、依赖传递、依赖范围以及依赖的生命周期等七个方面。作者擅长前端开发,秉持“得之坦然,失之淡然”的座右铭。期待您的点赞、关注和收藏,这将是作者持续创作的动力! [个人主页](https://blog.csdn.net/weixin_73355603?spm=1000.2115.3001.5343)
40 3
|
1月前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题
|
1月前
|
监控 Java
java异步判断线程池所有任务是否执行完
通过上述步骤,您可以在Java中实现异步判断线程池所有任务是否执行完毕。这种方法使用了 `CompletionService`来监控任务的完成情况,并通过一个独立线程异步检查所有任务的执行状态。这种设计不仅简洁高效,还能确保在大量任务处理时程序的稳定性和可维护性。希望本文能为您的开发工作提供实用的指导和帮助。
109 17
|
2月前
|
Java
Java—多线程实现生产消费者
本文介绍了多线程实现生产消费者模式的三个版本。Version1包含四个类:`Producer`(生产者)、`Consumer`(消费者)、`Resource`(公共资源)和`TestMain`(测试类)。通过`synchronized`和`wait/notify`机制控制线程同步,但存在多个生产者或消费者时可能出现多次生产和消费的问题。 Version2将`if`改为`while`,解决了多次生产和消费的问题,但仍可能因`notify()`随机唤醒线程而导致死锁。因此,引入了`notifyAll()`来唤醒所有等待线程,但这会带来性能问题。
Java—多线程实现生产消费者
|
2月前
|
消息中间件 缓存 安全
Java多线程是什么
Java多线程简介:本文介绍了Java中常见的线程池类型,包括`newCachedThreadPool`(适用于短期异步任务)、`newFixedThreadPool`(适用于固定数量的长期任务)、`newScheduledThreadPool`(支持定时和周期性任务)以及`newSingleThreadExecutor`(保证任务顺序执行)。同时,文章还讲解了Java中的锁机制,如`synchronized`关键字、CAS操作及其实现方式,并详细描述了可重入锁`ReentrantLock`和读写锁`ReadWriteLock`的工作原理与应用场景。

热门文章

最新文章