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多线程】对线程池的理解并模拟实现线程池
13 1
|
1天前
|
Java 调度
Java一分钟之线程池:ExecutorService与Future
【5月更文挑战第12天】Java并发编程中,`ExecutorService`和`Future`是关键组件,简化多线程并提供异步执行能力。`ExecutorService`是线程池接口,用于提交任务到线程池,如`ThreadPoolExecutor`和`ScheduledThreadPoolExecutor`。通过`submit()`提交任务并返回`Future`对象,可检查任务状态、获取结果或取消任务。注意处理`ExecutionException`和避免无限等待。实战示例展示了如何异步执行任务并获取结果。理解这些概念对提升并发性能至关重要。
15 5
|
1天前
|
安全 Java 调度
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第12天】 在现代软件开发中,多线程编程是提升应用程序性能和响应能力的关键手段之一。特别是在Java语言中,由于其内置的跨平台线程支持,开发者可以轻松地创建和管理线程。然而,随之而来的并发问题也不容小觑。本文将探讨Java并发编程的核心概念,包括线程安全策略、锁机制以及性能优化技巧。通过实例分析与性能比较,我们旨在为读者提供一套既确保线程安全又兼顾性能的编程指导。
|
1天前
|
Java
Java一分钟:线程协作:wait(), notify(), notifyAll()
【5月更文挑战第11天】本文介绍了Java多线程编程中的`wait()`, `notify()`, `notifyAll()`方法,它们用于线程间通信和同步。这些方法在`synchronized`代码块中使用,控制线程执行和资源访问。文章讨论了常见问题,如死锁、未捕获异常、同步使用错误及通知错误,并提供了生产者-消费者模型的示例代码,强调理解并正确使用这些方法对实现线程协作的重要性。
10 3
|
1天前
|
安全 算法 Java
Java一分钟:线程同步:synchronized关键字
【5月更文挑战第11天】Java中的`synchronized`关键字用于线程同步,防止竞态条件,确保数据一致性。本文介绍了其工作原理、常见问题及避免策略。同步方法和同步代码块是两种使用形式,需注意避免死锁、过度使用导致的性能影响以及理解锁的可重入性和升级降级机制。示例展示了同步方法和代码块的运用,以及如何避免死锁。正确使用`synchronized`是编写多线程安全代码的核心。
51 2
|
1天前
|
安全 Java 调度
Java一分钟:多线程编程初步:Thread类与Runnable接口
【5月更文挑战第11天】本文介绍了Java中创建线程的两种方式:继承Thread类和实现Runnable接口,并讨论了多线程编程中的常见问题,如资源浪费、线程安全、死锁和优先级问题,提出了解决策略。示例展示了线程通信的生产者-消费者模型,强调理解和掌握线程操作对编写高效并发程序的重要性。
38 3
|
2天前
|
安全 Java
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第11天】在Java并发编程中,线程安全和性能优化是两个重要的主题。本文将深入探讨这两个方面,包括线程安全的基本概念,如何实现线程安全,以及如何在保证线程安全的同时进行性能优化。我们将通过实例和代码片段来说明这些概念和技术。
3 0
|
2天前
|
Java 调度
Java并发编程:深入理解线程池
【5月更文挑战第11天】本文将深入探讨Java中的线程池,包括其基本概念、工作原理以及如何使用。我们将通过实例来解释线程池的优点,如提高性能和资源利用率,以及如何避免常见的并发问题。我们还将讨论Java中线程池的实现,包括Executor框架和ThreadPoolExecutor类,并展示如何创建和管理线程池。最后,我们将讨论线程池的一些高级特性,如任务调度、线程优先级和异常处理。
|
2天前
|
Java
线程池笔记
线程池笔记
6 0
|
2天前
|
安全 Java
【JAVA进阶篇教学】第十篇:Java中线程安全、锁讲解
【JAVA进阶篇教学】第十篇:Java中线程安全、锁讲解